我在 JAVA 中遇到电子邮件验证时遇到问题(这是新手)不断收到这些错误,并对原因感到困惑。我应该收到人员的电子邮件,检查它是否设定标准(由我的教授),然后获取有关测试的信息。当我检查电子邮件时,如果有错误,我应该显示错误。
错误
N:ProgrammingJavaHomeworkEmailAndGrade.java:29: illegal start of expression
private static boolean validEmail(sEmail);
^
N:ProgrammingJavaHomeworkEmailAndGrade.java:29: illegal start of expression
private static boolean validEmail(sEmail);
^
N:ProgrammingJavaHomeworkEmailAndGrade.java:29: ';' expected
private static boolean validEmail(sEmail);
^
3 errors
法典
public class EmailAndGrade
{
public static void main(String[] args)
{
//Variables
String sEmail, sError, sTest;
int iTest;
char cGrade;
sEmail = JOptionPane.showInputDialog("Enter your email: ");
private static boolean validEmail(sEmail);
{
// editing to make requirements listed
// return email.matches("[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}");
return email.matches("[A-Z0-9]{7}+@[springfieldcollege]+\.[edu]");
};
sError = "One or More Errors with the Input Email.n" +
"Email is Empty.n" +
"Email must be less than 30 characters.n" +
"Must end in: @springfieldcollege.edu.n" +
"Can only have one @.n" +
"Must start with A through Z or a through z.n" +
"Can not have: # $ % & ,n ";
sTest = JOptionPane.showInptDialog("Enter Test Grade: ");
iTest = Integer.parseInt(sTest);
System.exit(0);
}
/*
void checkEmails()
{
for(String email : emailAddresses) {
if(validEmail(email)) {
// it's a good email - do something good with it
}
else {
// it's a bad email - do something... bad to it? sounds dirty...
JOptionPane.showMessageDialog(null,
sError,
"Email Error - Killian O'Brien",
JOptionPane.INFORMATION_MESSAGE);
}
}*/
}
*编辑
好的,现在我有这个代码了
package com.mkyong.regex;
import javax.swing.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class EmailAndGrade
{
public static void main(String[] args)
{
//Variables
String sEmail, sError, sTest;
int iTest;
char cGrade;
sEmail = JOptionPane.showInputDialog("Enter your email: ");
sError = "One or More Errors with the Input Email.n" +
"Email is Empty.n" +
"Email must be less than 30 characters.n" +
"Must end in: @springfieldcollege.edu.n" +
"Can only have one @.n" +
"Must start with A through Z or a through z.n" +
"Can not have: # $ % & ,n ";
sTest = JOptionPane.showInptDialog("Enter Test Grade: ");
iTest = Integer.parseInt(sTest);
System.exit(0);
}
public static boolean validEmail(String sEmail){
return email.matches("[A-Z0-9]{7}+@[springfieldcollege]+\.[edu]");
}
public static void checkEmails(){
for(String sEemail : emailAddresses) {
if(validEmail(email)) {
// it's a good email - do something good with it
}
else {
// it's a bad email - do something... bad to it? sounds dirty...
JOptionPane.showMessageDialog(null,
sError,
"Email Error - Killian O'Brien",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
}
我现在得到这些
N:ProgrammingJavaHomeworkEmailAndGrade.java:37: cannot find symbol
symbol : method showInptDialog(java.lang.String)
location: class javax.swing.JOptionPane
sTest = JOptionPane.showInptDialog("Enter Test Grade: ");
^
N:ProgrammingJavaHomeworkEmailAndGrade.java:47: cannot find symbol
symbol : variable emailAddresses
location: class com.mkyong.regex.EmailAndGrade
for(String email : emailAddresses) {
^
N:ProgrammingJavaHomeworkEmailAndGrade.java:54: cannot find symbol
symbol : variable sError
location: class com.mkyong.regex.EmailAndGrade
sError,
^
N:ProgrammingJavaHomeworkEmailAndGrade.java:63: cannot find symbol
symbol : variable email
location: class com.mkyong.regex.EmailAndGrade
return email.matches("[A-Z0-9]{7}+@[springfieldcollege]+\.[edu]");
^
4 errors
当我输入这个时,我意识到我只有一堆未声明的变量。这对吗?
您正在另一个方法main
中实现方法validEmail
,这是不允许的。将下面的方法移出 main 函数(就在最后一行之前(在类右大括号 }
之前))。此外,您在方法实现中的两个位置(第一行结束和最后一行结束)使用额外的分号。删除分号 ;
。最后,在方法签名中添加参数类型类(字符串)。更新后的方法应如下所示:
private static boolean validEmail(String sEmail){
// editing to make requirements listed
// return email.matches("[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}");
return email.matches("[A-Z0-9]{7}+@[springfieldcollege]+\.[edu]");
}
不能以内联方式声明函数。 将您的validEmail()
声明移出main()
。 同样的情况是,分号也应从方法声明的末尾删除。