我确信这是 string.replaceAll() 方法工作原理的产物,但是由于某种奇怪的原因,当您键入任何带有空格的内容时,它会使我的循环运行两次?
public class TestCode{
public static void main(String[] args) throws IOException{
Scanner scan = new Scanner(System.in);
String input = "";
while(!input.equals("X")){
System.out.println("Prompt user for input");
input = scan.next().toUpperCase();
calculatePolynomial(input);
}
}
public static void calculatePolynomial(String input){
//Clean up entry removing spaces and extracting polynomial names
String calculation = input.replaceAll("\\s", "");
System.out.println(calculation);
}
}
这个想法是让代码运行......打印出消息,提示输入。然后处理输入并做一些事情。一遍又一遍地重复该过程,直到输入标记值“x”。
但是,当您键入包含空格的输入时,出于某种原因,它会运行循环,就好像每个单词现在都是单独的输入一样。因此,如果您输入三个单词,它只会运行循环三次而不是一次。
我只希望用户的输入没有空格,也没有逻辑错误的噩梦。