-1

所以我正在用java做一个项目,我有一个简单的问题。

我有一个接收字符串的方法,我想去掉空格并检查它是否为空。到目前为止,我已经完成了以下操作,但它似乎无法正常工作。

public static Boolean isValid(String s) {
    s.replace(" ", "");
    if (s == ""){
        return false;
    }
    else {
        return true;
    }
}

任何帮助将不胜感激:) Ta

4

7 回答 7

6

你可以试试这个:

public static Boolean isValid(String s) {
    return (!s.trim().isEmpty());
}
于 2014-11-05T11:16:32.377 回答
2

首先,您忘记了s.replace(" ",""). 将其存储在变量中,例如

x = s.replace(" ","");

对于字符串比较使用.equals()方法而不是==

于 2014-11-05T11:19:17.317 回答
1

您也可以使用以下代码:

newString=myString.replaceAll("\\s+",""); 这将删除字符串之间的一个或多个空格以及前导和尾随空格

利用 :myString.trim()仅删除前导和尾随空格

接着newString.isEmpty()

您应该使用.equals()比较字符串

于 2014-11-05T11:17:13.273 回答
1

比较字符串时,请使用.equals(). 它仅在您使用的算术表达式中==符号

要检查您的字符串是否为空,请使用该.isEmpty()函数

于 2014-11-05T11:17:23.287 回答
1

你忘记了任务:

s = s.replace(" ", "");

编辑:对于说明 == 不起作用的评论。我想说它确实适用于 Java 7

于 2014-11-05T11:17:57.933 回答
1

replaceAll() 方法支持正则表达式,并且 isEmpty() 已经存在于 String 类中,因此我们可以重用它并且在这里使用更安全。

像这样简单地使用:

public static Boolean isValid(String s) {
    s = s.replaceAll("\\s", "");
    if (s.isEmpty()) {
        return false;
    } 
    else {
        return true;
    }
}
于 2014-11-05T11:30:21.557 回答
0

线程中很好地解释了字符串比较的等于和 == 之间的区别

s.replace() 的值应该分配给它自己或其他一些变量。

于 2014-11-05T11:31:10.147 回答