Java:验证字符串

时间:2014-11-05 11:14:27

标签: java string methods notnull

所以我正在研究java中的一个项目,我只是一个简单的问题。

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

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

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

7 个答案:

答案 0 :(得分:6)

你可以试试这个:

public static Boolean isValid(String s) {
    return (!s.trim().isEmpty());
}

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

您也可以使用以下代码:

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

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

然后newString.isEmpty()

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

答案 3 :(得分:1)

在比较字符串时,请使用.equals()。 只有在算术表达式中才使用==符号

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

答案 4 :(得分:1)

你忘记了作业:

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

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

答案 5 :(得分:1)

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

只需使用如下:

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

答案 6 :(得分:0)

thread

中很好地解释了在字符串比较的情况下,等于和==之间的差异

应将s.replace()的值赋给自身或其他变量。