我需要有关正则表达式的帮助,以便它可以查找正在搜索的字符串中是否有@符号。
import java.util.regex.*;
public class OnlineNewspaperSubscription extends NewspaperSubscription
{
public void setAddress(String a)
{
address = a;
// Creating a pattern from regex
Pattern pattern
= Pattern.compile("@*");
// Get the String to be matched
String stringToBeMatch = a;
// Create a matcher for the input String
Matcher matcher = pattern.matcher(stringToBeMatch);
if(matcher.matches())
{
super.rate = 9;
}
else
{
super.rate = 0;
System.out.println("Need an @ sign");
}
}
}
我应该能够知道此字符串是否是电子邮件地址。
答案 0 :(得分:2)
您不需要正则表达式即可在'@'
中找到String
的索引;使用String.indexOf(int)
(传递char
)。喜欢,
int p = a.indexOf('@');
if (p > -1) {
// ...
}
答案 1 :(得分:0)
您不需要为此使用正则表达式,这太过分了。您可以只使用Java 1.5中可用的String类中的方法contains()
(如果我没记错的话)。此方法实际上确实在内部使用indexOf()
。
System.out.println("Does not contain :" + "Does not contain".contains("@"));
System.out.println("Does cont@in :" + "Does not cont@in".contains("@"));
输出:
Does not contain @:false
Does contain @:true
注释:
如果您要验证电子邮件地址的格式, 仅检查
@
是否存在,我建议 为此使用正则表达式。