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

发布于 2021-01-29 19:57:40

我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个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”

关注者
0
被浏览
118
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    更换

    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")) {
    

    因为,我认为这很明显。



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看