我正在尝试检查字符串的语法。
class EMailAdress {
public static String fname;
public static String lname;
public static String org1;
public static String org2;
public static String domain;
public static void main(String[] args) {
Out.println("Bitte geben sie eine Email-Adresse ein:");
fname = In.readIndentifier();
if (!In.done()) {
Out.println("fname nicht gelessen");
return;
}
char c1 = In.read();
if (c1 !== ('.' || '@')) {
Out.println("@ erwartet");
return;
}
if (c1.equals('.')) {
lname = In.readIndentifier();
} else {
org1 = In.readIndentifier();
return;
}
char c2 = In.read();
if (c2 !== ".") {
Out.println(". erwartet");
return;
}
org2 = In.readIndentifier();
if (!In.done()) {
domain = In.readIndentifier();
}
if (!doman.equals("at" || "com" || "net")) {
Out.println("at, com, net erwartet");
return;
}
Out.println("Korrekte Email erkannt!");
Out.println("Name:" + fname + " " + lname);
Out.println("Organisation:" + org1 + " " + org2);
Out.println("Email:" + fname + c1 + lname + org1 + c2 + org2 + domain);
}
}
我无法编译此代码,我不明白为什么。
In.readIndentifier
是我可以使用的方法,in.done
也是如此。
答案 0 :(得分:0)
您的代码中有一些奇怪的内容,不确定In
和Out
是什么,但这是第一件事
if (c1 !== ('.' || '@'))
应该是
if (c1 != '.' && c1 !='@')
这是另一个
if (c2 !== ".")
java不是javascript,对于您正在使用的==
或!=
还有一个
if (!doman.equals("at" || "com" || "net")) {
equals
将对象作为参数而非hmm ...无效操作
所以你需要在
if (!(doman.equals("at")&&doman.equals("com")&&doman.equals("new")))
和另一个
char c1 = In.read();
...
if (c1.equals('.'))
c1
是原始的而非Object,因此它没有方法equals
答案 1 :(得分:0)
使用 java.util.regex.Pattern 验证字符串是一种更简单的方法。 您只需要根据需要指定模式。这是一个有效的例子:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Runner {
private Pattern pattern;
private Matcher matcher;
private static final String EMAIL_PATTERN = "^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
public Runner() {
pattern = Pattern.compile(EMAIL_PATTERN);
}
public boolean validate(final String email) {
matcher = pattern.matcher(email);
return matcher.matches();
}
public static void main(String args[]) {
Runner runner = new Runner();
System.out.println("abc@net.com " + runner.validate("abc@net.com"));
System.out.println("abcnet.com " + runner.validate("abcnet.com"));
}
}
您可以在这里找到extra patterns