gpt4 book ai didi

Java String ReplaceAll 方法对循环有异常影响?

转载 作者:行者123 更新时间:2023-12-01 17:22:24 25 4
gpt4 key购买 nike

我确信这是 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”。

但是,当您键入包含空格的输入时,由于某种原因,它会运行循环,就好像每个单词现在都是单独的输入一样。因此,如果您输入三个单词,它只会运行循环三次,而不是一次。

我只是希望用户的输入没有空格,也没有逻辑错误的噩梦。

最佳答案

使用 Scanner 时,默认情况下,next() 通过空格标记输入。因此,如果用户输入由空格分隔的两个单词,则循环将运行两次。

要获取用户输入行中的完整输入,请尝试使用 nextLine()方法代替。

关于Java String ReplaceAll 方法对循环有异常影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com