检查字符串是否包含@符号或字符串是否为null

时间:2019-01-11 16:00:23

标签: java

基本上,我有一种表单,人们可以在其中输入内容,并且有一部分可以输入电子邮件地址。有时,人们只是输入姓名而未输入实际的电子邮件地址。有时他们根本不填写。

是否有任何简单的方法来检查字符串中是否包含@符号,并检查其是否为Null?

感谢您的帮助

5 个答案:

答案 0 :(得分:0)

String s = "email@email.it";
    if(s!= null && !s.isEmpty() && s.contains("@") ) {
        System.out.println("ok");
    }
    else System.out.println("ko");
}

答案 1 :(得分:0)

使用AND布尔运算符。

str != null && str.contains("@")

我们首先检查字符串不为null,然后检查它是否包含'@'。注意:空检查首先被执行的原因是,这样我们就不会尝试访问如果为空的字符串。

答案 2 :(得分:0)

String类包含一个contains方法来检查@符号,并且您可以使用!= null调用来简单地检查是否为空:

public static void main(String[] args) {
    String a = "should be false";
    String b = "should be @true";
    String c = null;
    System.out.println(checkString(a));
    System.out.println(checkString(b));
    System.out.println(checkString(c));
}

static boolean checkString(String str) {
    return str != null && str.contains("@");
}

输出:

  

false

     

true

     

false

答案 3 :(得分:0)

下面是一些非常简单的代码来实现此目的:

String ourString = "example@emailIsCool.com";
if(/* Check if our string is null: */ ourString != null &&
   /* Check if our string is empty: */ !ourString.isEmpty() &&
   /* Check if our string contains "@": */ ourString.contains("@")) {
    System.out.println("String Fits the Requirements");
} else {
    System.out.println("String Does Not Fit the Requirements");
}

供以后参考,这对于Stack Overflow来说是极为广泛的,您应该在发帖询问答案之前尝试检查javadoc。例如,以下是String类的javadoc:https://docs.oracle.com/javase/7/docs/api/java/lang/String.html

Oracle提供的

Javadocs详细介绍了标准Java库中包含的所有类的每个方法和属性。这是指向Java 7的javadoc主页的链接。 https://docs.oracle.com/javase/7/docs/api/overview-summary.html

答案 4 :(得分:0)

我认为使用Optional是最好的方法。

这样的代码:

String nullEmail = null;
System.out.println(Optional.ofNullable(nullEmail).filter(s -> s.contains("@")).isPresent());

String rightEmail = "478309639@11.com";
System.out.println(Optional.ofNullable(rightEmail).filter(s -> s.contains("@")).isPresent());

String wrongEmail = "chentong";
System.out.println(Optional.ofNullable(wrongEmail).filter(s -> s.contains("@")).isPresent());

输出为:

false
true
false