2013-10-18 17 views
2

我無法從用戶輸入數據填充String數組。這裏是我的問題的一個簡單的例子:如何使用Java創建,填充和打印字符串數組

import java.util.Scanner; 

public class TestArray { 
    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a number between 1 and 5"); 
     int number = input.nextInt();  

     System.out.println("Now enter " + number + " names");  
     String names = input.next(); 

     String[] nameList = new String[number]; 

     for(int i = 0; i < number; i++){ 
      nameList[i] = input.next(); 
      System.out.println(nameList[i]); 
     } 
    } 
}  

我不知道爲什麼這只是打印輸入的姓氏。我最終想要打印出每個名字。我也嘗試使用input.nextLine()哪些不起作用。

任何提示或指針將不勝感激。

+2

這不是完整的代碼。 –

+2

'names'變量的意義是什麼,爲什麼它會使用第一個'input.next()'? –

+2

@RohitJain它只缺少三個右括號.... –

回答

2

只要有輸入名稱全部打印出來後,一個單獨的循環:

import java.util.Scanner; 

public class TestArray { 
    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a number between 1 and 5"); 
     int number = input.nextInt();  

     System.out.println("Now enter " + number + " names");  
     //NOTE: You may want to remove this line since it will mess up your data. 
     //String names = input.next(); 

     String[] nameList = new String[number]; 

     for(int i = 0; i < number; i++){ 
      nameList[i] = input.next(); 
     } 

     //print separate here. 
     System.out.println("Here are the names you entered: "); 
     for(int i = 0; i<number; i++){ 
      System.out.println(nameList[i]); 
     } 
    } 
} 
0

什麼的

String names = input.next(); 

的目的是什麼?

根本就不使用names,並且因爲它而捕獲數字後面的下一個輸入。

,如果你刪除它應該工作...

+0

是的,我在邏輯上有一個錯誤。儘管我很欣賞這種迴應。它在我移除它時起作用,但不是我想要的方式,但我應該從這裏開始。 – censortrip

0

你的第一個input.next()調用(後提示,「現在進入X名」)的傾斜你的數據。只要刪除它。

public class TestArray { 
    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a number between 1 and 5"); 
     int number = input.nextInt();  

     System.out.println("Now enter " + number + " names"); 

     String[] nameList = new String[number]; 

     for(int i = 0; i < number; i++){ 
      nameList[i] = input.next(); 
      System.out.println(nameList[i]); 
     } 
    } 
} 
0

String names = input.next(); 

是造成你的問題。如果你把它拿出來,程序按照你的描述進行。或者,您可以在一個循環中填充數組,然後在列表中循環顯示列表。這取決於你想要做什麼。

import java.util.Scanner; 

public class test{ 
    public static void main(String[] args){ 

     Scanner input = new Scanner(System.in); 

     System.out.println("Enter a number between 1 and 5"); 
     int number = input.nextInt();  

     System.out.println("Now enter " + number + " names");  
     //String names = input.next(); 

     String[] nameList = new String[number]; 

     for(int i = 0; i < number; i++){ 
        nameList[i] = input.next(); 
      System.out.println(nameList[i]); 
    }  
    } 
} 
+0

謝謝你的替代解決方案湯姆。 – censortrip

相關問題