2016-11-30 2 views
0

im очень новичок в этом, работая над некоторыми проблемами ap comp sci Я хочу хранить пользовательские входы в список массивов строк, но когда я печатаю массив im, пытающийся заполнить, я просто получаю что-то вроде [,,,] Как я могу это исправить?Как исправить in.nextLine(), возвращающий массив пустых строк?

public static void main(String[] args) { 
    // TODO Auto-generated method stub 

    System.out.println("Enter words, followed by the word \"exit\""); 

    Scanner in = new Scanner(System.in); 
    ArrayList<String> words = new ArrayList<String>(); 
    WordList test = new WordList(words); 

    while(!in.next().equals("exit")) 
    { 
     words.add(in.nextLine()); 
    } 

    System.out.println(words); 

ответ

1

Проблема у вас есть то, что в состоянии в то время как петли вы читали, что пользователь ввел на входе, а затем внутри, когда вы читаете я пустая строка.

Вам нужно прочитать строку только внутри while и разбить цикл, если пользователь набрал «exit». Как следует:

public static void main(String[] args) { 
    System.out.println("Enter words, followed by the word \"exit\""); 
    Scanner in = new Scanner(System.in); 
    ArrayList<String> words = new ArrayList<String>(); 

    while (true) { 
     String str = in.nextLine(); 
     if ("exit".equals(str)) { 
      break; 
     } 
     words.add(str); 
    } 
    System.out.println(words); 
} 
+0

благодаря гроздь, идентификатор никогда не видел «перерыв» прежде, большую помощь :) – ThomasV

+0

я был бы признателен, если бы вы могли принять ответ и на голос его :) – guymaor86

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