我正在尝试遍历我的arraylist并打印无效的电子邮件地址。如果无效,则地址不包含@符号或句点。
我收到错误,int无法转换为我的方法的charsequence。
public static void print_invalid_emails(){
for (int i = 0; i < studentList.size(); i++) {
if (studentList.get(i).getEmail().contains('@' + '.')){
System.out.println("Scanning Roster");
}
else {
System.out.println("Invalid email address, " + studentList.get(i).getEmail());
}
}
}
答案 0 :(得分:2)
问题是Java将'@' + '.'
视为两个字符的添加,而不是字符串的串联。此添加的结果是UNICODE代码点@
加上unicode代码点.
,表示为int
。
如果您想检查该项目是否缺少.
或@
,您应该在两次单独调用contains(...)
答案 1 :(得分:1)
错误在这里:
if (studentList.get(i).getEmail().contains('@' + '.')){
应该是:
if (studentList.get(i).getEmail().contains("@") || studentList.get(i).getEmail().contains(".")){