基本上,我有一种表单,人们可以在其中输入内容,并且有一部分可以输入电子邮件地址。有时,人们只是输入姓名而未输入实际的电子邮件地址。有时他们根本不填写。
是否有任何简单的方法来检查字符串中是否包含@符号,并检查其是否为Null?
感谢您的帮助
答案 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