【发布时间】:2013-05-13 11:19:58
【问题描述】:
考虑在 main 方法的 starter 类中提供的电子邮件 ID。
String emailId = "Hellooo_hell@gmail.com";
问题描述:
emailId 的总长度应该是 >3 和
emailId 必须包含“@”,后跟最少 1 个,最多 2 个“。”字符。
- “@”之前的子字符串必须包含大写、小写和“_”(下划线)符号的组合。
- emailId 的第一个字母必须大写。
如果上述所有条件都有效,则必须显示成功消息或应显示适当的错误消息。
这是无法按我想要的方式工作的代码。
public class EmailCheck {
String emailId;
public void setEmailId(String emailId){
this.emailId=emailId;
}
public String getEmailId(){
return emailId;
}
public static void main(String[] args) {
EmailCheck em = new EmailCheck();
em.setEmailId("Hell_ooo@gmail.com");
String email = em.getEmailId();
int length = email.length();
boolean flag1 = false;
boolean flag2 = false;
boolean flag3 = false;
boolean flag4 = false;
boolean flag5 = false;
boolean flag6 = false;
boolean flag7 = false;
int count = 0;
int count2 = 0;
//Condition 1
if((length>3 && length<20)== true)
flag1 = true;
else
flag1 = false;
//Condition 2
for(int i=0;i<length;i++){
if(email.charAt(i)=='@'){
flag2 = true;
for(int j=i+1;j<length;j++){
if(email.charAt(j)=='.')
{
flag3 = true;
count=++count;
}
else
flag3 = false;
}
if(count<1 || count>2)
{
flag4 = false;
//System.out.println("Invalid position of special characters");
}
else
flag4 = true;
}
else
flag2 = false;
}
//Condition 3
if(email.matches("[a-zA-Z_]+@.*"))
flag5 = true;
else
flag5 = false;
//Condition4
if(Character.isUpperCase(email.charAt(0))==true)
flag6 = true;
else
flag6=false;
if(flag1==true && flag2==true && flag3==true && flag4==true && flag5==true &&flag6==true)
System.out.println("Email ID is valid");
else{
if(flag1==false)
System.out.println("Inavlid length of Email ID");
if(flag2==false||flag3==false||flag4==false)
System.out.println("Invalid Position of Special Characters");
if(flag5==false)
System.out.println("Invalid combination for username");
if(flag6==false)
System.out.println("Invalid case of first letter");
}
}
}
【问题讨论】:
-
我强烈建议你研究一下正则表达式
-
您为什么要这样做?电子邮件 ID 不区分大小写:
Hellooo_hell和hELlOoO_HElL是用于发送电子邮件的相同用户 ID。下划线也不是用户名中的强制字符。你真正想做什么?您真的在验证电子邮件地址吗?如果是,那么您的方法是错误的。如果不是,请描述您的问题。 -
下次请使用有意义的标题。 “Java 方法和字符串”没有说明您的问题。
-
编辑了问题描述并添加了代码。请仔细查看。
标签: java