小编典典

为什么我不能在Java中删除空格?

java

我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。

String input;
if(GamePlay.GameStart == true){
    input = Terminal.askString("Welcome to MASTERMIND! \n Please Give in Your Game Attributes \n");
            input.replaceAll("\\s","");
}else
    input = Terminal.askString(""); 
if (input.equals("Quit") || input.equals("quit")){
    Quit();

}
else if(GamePlay.GameStart == true){

    System.out.println(input); .......(code follows)

你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S”


阅读 296

收藏
2020-11-30

共1个答案

小编典典

更换

input.replaceAll("\\s","");

input = input.replaceAll("\\s","");

它将起作用,因为字符串是不可变的,因此replaceAll()不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配input给由返回的字符串input.replaceAll("\\s","");

另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。

而且,您也可以更换

if(GamePlay.GameStart == true) {

if(GamePlay.GameStart) {

因为在您的版本中,您比较GamePlay.GameStartwith
的值true,并且仅在if该评估为时才执行该块true,而在我的版本中,ìf如果GamePlay.GameStart是,则执行该块true(尽管编译器可能仍然对其进行了优化)。

另一方面,您也可以替换

if (input.equals("Quit") || input.equals("quit")){

if (input.equalsIgnoreCase("Quit")) {

因为,我认为这很明显。

2020-11-30