我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个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”
更换
input.replaceAll("\\s","");
与
input = input.replaceAll("\\s","");
它将起作用,因为字符串是不可变的,因此replaceAll()不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配input给由返回的字符串input.replaceAll("\\s","");
replaceAll()
input
另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。
而且,您也可以更换
if(GamePlay.GameStart == true) {
if(GamePlay.GameStart) {
因为在您的版本中,您比较GamePlay.GameStartwith 的值true,并且仅在if该评估为时才执行该块true,而在我的版本中,ìf如果GamePlay.GameStart是,则执行该块true(尽管编译器可能仍然对其进行了优化)。
GamePlay.GameStart
true
if
ìf
另一方面,您也可以替换
if (input.equals("Quit") || input.equals("quit")){
if (input.equalsIgnoreCase("Quit")) {
因为,我认为这很明显。