我的扫描仪和nextLine有问题。会发生什么,它会跳过循环的第一圈。我的猜测是扫描仪已经在这里包含了一些东西,比如换行符等等。如果我为strCount和循环使用两个不同的扫描仪,它确实有效。这是正确的,如果是的话,我有什么办法可以在不使用两种不同扫描仪的情况下完成这项工作。
import java.util.*;
public class chars_in_string {
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.print("Number of strings?");
int strCount = key.nextInt();
String [] array = new String[strCount];
for(int x = 0; x < strCount; x++){
System.out.print("String "+(x+1)+":");
array[x] = key.nextLine();
}
}
}
输入/输出示例:
字符串数量? 8
字符串1:字符串2:
从这里可以正常输入任何字符串,只需在循环中跳一步即可获得下一个字符串。
答案 0 :(得分:4)
问题是Scanner.nextInt()
不使用行终止符。在进入循环之前,只需多做一次nextLine()
。