我在接受来自键盘的输入并将其存储在数组中时缺少了一些东西。
这是我尝试过的:
public static void main(String[] args) {
System.out.println("Hello World");
Scanner obj=new Scanner(System.in);
System.out.println("enter sentence ");
String[] inputArray = new String[10];
int i = 0;
while (obj.hasNext()){
String word = (String) obj.next();
inputArray[i] = word;
System.out.println("word is " + word);
System.out.println("array is " + inputArray[i]);
}
System.out.println("final array is " + inputArray); //This line doesn't print. Why ?
}
为什么在while循环后无法打印数组?
答案 0 :(得分:3)
那是因为您已经在增加i
更改为
String word = (String) obj.next();
inputArray[i] = word;
System.out.println("word is " + word);
System.out.println("array is " + inputArray[i]);
// now increment
i++;
最后一行没有打印的原因是obj.hasNext
正在阻止等待输入,您需要以某种方式中断,另请参阅java Scanner.hasNext() usage
答案 1 :(得分:0)
您可以使用for循环。
应该是这样的:
for(int I; i<inputArray.length;i ++){
System.out.println("word is " + word);
System.out.println("array is " + inputArray[i]);
}
答案 2 :(得分:0)
变量“ i”在错误的位置递增,因此System.out.println("array is " + inputArray[I])
不输出任何值。
声明System.out.println("final array is " + inputArray)
未到达,因为while循环永远不会退出。请参见下面的代码,我在10个条目之后退出了while循环,它将打印最终的数组。
public static void main(String[] args) {
System.out.println("Hello World");
Scanner obj=new Scanner(System.in);
System.out.println("enter sentence ");
String[] inputArray = new String[10];
int i = 0;
while (obj.hasNext()){
if(i >= 10){
break;
}
String word = (String) obj.next();
inputArray[i] = word;
System.out.println("word is " + word);
System.out.println("array is " + inputArray[i]);
i++; //pls ignore this dumb error
}
System.out.println("final array is " + inputArray); //This line doesn't print. Why ?
Arrays.stream(inputArray).forEach(System.out::println);
}