【问题标题】:int cannot be converted to charsequenceint 不能转换为字符序列
【发布时间】:2016-02-14 22:25:14
【问题描述】:

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

我收到一个错误,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());

        }
    }
}

【问题讨论】:

  • 运行这段代码会发生什么?

标签: java arraylist int charsequence


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    错误就在这里:

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

    应该是:

    if (studentList.get(i).getEmail().contains("@") || studentList.get(i).getEmail().contains(".")){
    

    【讨论】:

      猜你喜欢
      • 2015-01-05
      • 2018-10-26
      • 2023-03-09
      • 2014-06-04
      • 2018-02-05
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      相关资源
      最近更新 更多