2013-10-18 20 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

相关问题