【问题标题】:Finding and printing a string that has white space using for loop in Java在Java中使用for循环查找并打印具有空格的字符串
【发布时间】:2016-02-16 16:21:05
【问题描述】:

我正在尝试打印任何无效的电子邮件地址。要无效,电子邮件地址不能包含@ 符号、句点或空格。我的代码返回没有@符号或句点的电子邮件地址,但它们没有返回其中有空格的电子邮件地址。

public static void print_emails(){
    for (int i = 0; i < student.size(); i++) {


        if (student.get(i).getEmail().contains("@") && student.get(i).getEmail().contains(".") && student.get(i).getEmail().contains("")){
            System.out.println("Scanning Roster");
        }

        else if (student.get(i).getEmail().contains("\\s")){
            System.out.println("Invalid email address, " + student.get(i).getEmail());
        }

        else {
            System.out.println("Invalid email address, " + student.get(i).getEmail());

        }

    }

}

【问题讨论】:

    标签: java loops for-loop whitespace


    【解决方案1】:

    更好的方法是将电子邮件字符串与正则表达式进行匹配。以下应该有效:

    ^[A-Za-z0-9+_.-]+@(.+)$
    

    这是一个非常简单的方法,您可以根据自己的需要将其变得越来越复杂。目前,这个确保:

    1) 允许使用 A-Z 和 a-z 字符

    2) 允许 0-9 个数字

    3) 电子邮件只能包含点(.)、破折号(-)和下划线(_)

    同时允许@符号出现在正确的位置。

    【讨论】:

      【解决方案2】:

      contains() 期待 CharSequence。改用正则表达式:

      else if (studentList.get(i).getEmail().matches(".*\\s.*"))
      

      【讨论】:

        【解决方案3】:

        您可以修改您的代码以包含以下内容:

        public static void print_invalid_emails()
        {
            for (int i = 0; i < studentList.size(); i++) 
            {
                if (studentList.get(i).getEmail().contains("@") && studentList.get(i).getEmail().contains(".") && !studentList.get(i).getEmail().contains(" "))
                {
                    System.out.println("Scanning Roster");
                }
                else 
                {
                    System.out.println("Invalid email address, " + studentList.get(i).getEmail());
                }
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-03-27
          • 1970-01-01
          • 2012-04-19
          • 1970-01-01
          • 2018-12-11
          • 1970-01-01
          • 2014-02-17
          • 1970-01-01
          相关资源
          最近更新 更多