1

我正在尝试遍历我的数组列表并打印无效的电子邮件地址。为无效,该地址不包含@ 符号或句点。

我收到一个错误,int 无法转换为我的方法的字符序列。

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());

        }
    }
}
4

2 回答 2

2

问题在于 Java 将'@' + '.'其视为两个字符的相加,而不是字符串的串联。这个加法的结果是 UNICODE 码点@加上 unicode 码点.,表示为int

如果您想检查该项目是否缺少 a.或 a @,您应该在两个单独的调用中执行这两个检查contains(...)

于 2016-02-14T22:29:57.653 回答
1

错误在这里:

if (studentList.get(i).getEmail().contains('@' + '.')){

它应该是:

if (studentList.get(i).getEmail().contains("@") || studentList.get(i).getEmail().contains(".")){
于 2016-02-14T22:29:51.313 回答