2017-02-02 2 views
0
import java.io.*; 
import java.util.*; 
import java.lang.*; 
class MenuList 
{ 
    public static void main(String args[]) 
    { 

     Scanner sc=new Scanner(System.in); 
     List<String> items=new ArrayList<String>(); 
     int y; 
     do 
     { 

      //String n=""; 
      //int i=0; 
      System.out.println("********************"); 
      System.out.println("  MENU"); 
      System.out.println("********************"); 
      System.out.println("Press 1 to Add an Array with to List : "); 
      System.out.println("Press 2 to Remove an Array from the List : "); 
      System.out.println("Press 3 to Add Array at an Index in the List : "); 
      System.out.println("Press 4 to Replace an Array in the List: "); 
      System.out.println("Press 5 to Show the Output : "); 
      System.out.println("Press 6 to exit"); 
      y=sc.nextInt(); 
      //int [] arr= new int[5]; 


      switch(y) 
      { 
       case 1: 
        System.out.println("Enter the Element to be added "); 
        items.add(sc.next()); 
        break;     
       case 2: 
        System.out.println("Enter the Element's postion which you want to Remove "); 
        items.remove(sc.nextInt()); 
        break; 
  • в случае 3 и 4 я получаю ту же ошибку, как и раньше. несоответствие вводаЯ хочу создать MenuBased ArrayList в Java

      case 3: 
           System.out.println("Enter the Elements postion and Element to be added : "); 
           items.add(sc.nextInt(),sc.next()); 
           break; 
    
  • Индекс начинается с 0 и увеличивается. Я ввожу 4 значения, а затем пытались изменения значения на 2 индекса он показал мне ошибку входного сигнала рассогласования

      case 4: 
           System.out.println("Enter the Elements postion and Element to be replaced :"); 
           items.set(sc.nextInt(),sc.next()); 
           break; 
    
          case 5: 
           System.out.println("Values you stored are as follows : " +items); 
           break; 
          case 6 : 
           break; 
          default: 
           System.out.println("You Have Entered Invalid Choice ");    
         } 
        } 
        while(y != 6); 
    } 
    

    }

+0

Какова цель переменной 'n' в коде? Избавьтесь от этого, и ваше 'InputMismatchException' исчезнет. --- Кроме того, вы хотите переместить «новый сканер» и «новый ArrayList' * вне * цикла. – Andreas

+0

Спасибо за совет. Теперь я получаю ту же ошибку в случае 3 и 4. Мне нужно добавить индекс для случая 3 и 4. если да, то где я должен добавить его? –

+0

Я хотел назначить переменную для входных данных, которые будет выполняться программой. Поэтому я использовал «n» и инициализировал его. Возможно ли это? или логика/подход позади этого неправильны? –

ответ

0

Я получил код работает, а также несколько замечаний:

В принципе, вам нужно переместить

List<String> items=new ArrayList<String>(); 

вне цикла do. Вместо того, чтобы изменять его, вы воссоздаете его на каждой итерации. И используйте sc.next() вместо sc.next(n), чтобы читать строки.

  • Вам нужна куча ошибок при проверке здесь, все происходит, если какие-либо ошибки ввода сделаны, и это очень легко сделать (сделать ошибку).
  • Ваши сообщения на дисплее нуждаются в улучшении, проинструктировать пользователя, что необходимо ввести в каком порядке
+0

Как уже отмечалось выше, декларация сканера также должна быть выведена, но код по-прежнему работает с ним внутри цикла. – WillD

+0

Я остановился в одном случае, так что не выводил инструкции .. застрял в одном случае за последние 3 часа. –

1

Первая проблема с добавлением очевидно, не добавить ' п»в: items.Add (sc.next (п)) Вы не использовали его в следующих строках, которые правильно

+0

Я использовал его в первой строке и получил ошибку, поэтому не делал этого. Я хотел назначить переменную для входов, которые программа выполнит. если я использую Array вместо String как 'n', тогда он будет работать? –

+0

нормально, какой вход вы mmake, потому что он работает. В 3-м случае вы не можете добавить индекс позиции больше, чем текущий размер od list – szania04

+0

Также 4-й случай работает, когда я кладу 4 элемента и заменяю вторую позицию – szania04

 Смежные вопросы

  • Нет связанных вопросов^_^