为什么我不能用Java删除WhiteSpaces?

gbe*_*gbe 0 java string whitespace

我拼命想要从一个字符串中删除空格(我想要能够转换成一个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)
Run Code Online (Sandbox Code Playgroud)

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

jlo*_*rdo 6

更换

input.replaceAll("\\s","");
Run Code Online (Sandbox Code Playgroud)

input = input.replaceAll("\\s","");
Run Code Online (Sandbox Code Playgroud)

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

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

而且,您也可以替换

if(GamePlay.GameStart == true) {
Run Code Online (Sandbox Code Playgroud)

if(GamePlay.GameStart) {
Run Code Online (Sandbox Code Playgroud)

因为在你的版本中你比较了GamePlay.GameStartwith 的值true,并且只在if那个评估时执行块true,而在我的版本中,ìf如果GamePlay.GameStart是,则执行块true(虽然编译器可能无论如何都会优化它).

另外,您也可以替换

if (input.equals("Quit") || input.equals("quit")){
Run Code Online (Sandbox Code Playgroud)

if (input.equalsIgnoreCase("Quit")) {
Run Code Online (Sandbox Code Playgroud)

因为,我认为这很明显.