我正在开发一个程序,当您输入错误的电子邮件时,它将显示一条错误消息。如果为空,则消息将告诉您不能为空。如果字符数超过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/