我试图在一个数组中输入多个字符串,但它们都必须在同一行上,并在输入sentinel值时停止。这就是我到目前为止所拥有的。
String [] courses = new String [5];
for (int k = 0; !(input.next().equals("xxx")); k++) {
courses[k] = input.next();
}
for循环似乎没有循环,当我检查后面的数组时,它只会有"之前的最后一个字符串;xxx";,并且没有先前输入的那些。所有输入必须在一行上。
我假设您使用java.util.Scanner类来获取控制台输入,并且您有一个固定的数组。
上面的代码有两个主要问题:当使用next((方法时,它将读取一行,而这一行将消失。如果你有10个代币而不是5个,会发生什么?
String[] courses = new String[5];
for(int i = 0; input.hasNext(); i++) {
String token = input.next();
if ("xxx".equals(token)) {
break;
}
courses[i] = token;
}
在您的情况下,使用而循环更好
String [] courses = new String[5];
int k = 0;
while(!(input.next().equals("xxx")) && k < 5) {
courses[k] = input.next();
k++;
}