我正在开发一个程序,当您输入错误的电子邮件时,它将显示一条错误消息。如果为空,则消息将告诉您不能为空。如果字符数超过30个,则必须小于或等于30个,依此类推。我拥有的程序是我从未在If语句内部使用indexOf。如果输入的电子邮件地址只能有一个AtSign(@),该如何编码?或编码,如果没有@符号或大于2,则会显示错误消息。

import javax.swing.JOptionPane;


public class EmailandGrade {

public static void main(String[] args) {

        // 1. Declaring Variables

        String strEmail;



        // 2. Print Prompts and User Input
        strEmail = JOptionPane.showInputDialog("Enter a user email:");

        // 3. If/Else Statements For Email
        if (strEmail.isEmpty())
        {
            JOptionPane.showMessageDialog(null, "Can't be blank");
        }
        else if (strEmail.length() > 30)
        {
            JOptionPane.showMessageDialog(null, "Email must be less than or equal 30 characters");
        }
        else if (!strEmail.endsWith("@student.stcc.edu"))
        {
            JOptionPane.showMessageDialog(null, "Must end with in: @student.stcc.edu");
        }
        else if (strEmail.indexOf("@") )
        {
            JOptionPane.showMessageDialog(null, "Can only have one @ in it");
        }

最佳答案

如果String.indexOf(String)找不到请求的子字符串,则返回-1,如链接的Javadoc中所述。因此,您可以像这样测试

else if (strEmail.indexOf("@") == -1)


然后,您需要编写另一个测试来检查两个(或更多)@符号。也许使用String.lastIndexOf(String)这样,

else if (strEmail.indexOf("@") == -1 ||
        strEmail.indexOf("@") != strEmail.lastIndexOf("@"))

关于java - 如何在Java中的if语句中使用indexOf?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42323728/

10-14 10:37