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"
更换
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)
因为,我认为这很明显.