【发布时间】:2016-04-05 08:46:18
【问题描述】:
我有一个验证方法,我必须逐个检查条件,然后相应地抛出错误消息。
为了实现这一点,我使用了多个 if 语句,如果所有条件都为 false,我应该执行一个任务。
这是我的代码:
if(s1.equals("") || s2.equals("") || s3.equals("") || s4.equals("") || s5.equals("") || s6.equals(""))
Toast.makeText(getApplicationContext(),"Enter all Details first", Toast.LENGTH_SHORT).show();
if(!s5.matches("[A-Za-z0-9]+"))
e5.setError("Username cannot contain special characters");
if(s5.length()<6)
e5.setError("Username must be a minimum of 6 characters.");
if(!(s3.contains("@")&& s3.contains(".")))
e3.setError("Enter a valid Email Id");
if(!s6.equals(s7))
e7.setError("Passwords dont match");
if(s2.length()!=10)
e2.setError("Please enter a valid 10 digit number");
else
{
Validate v2=new Validate();
v2.store_values(s1,s2,s3,s4,s5,s6,s8);
v2.execute();
}
问题在于 else 语句只与最后一个 if 语句相关联,而前面的 5 个 if 语句独立工作。
请注意,我不能使用 else-ifs,因为所有字段都应该经过验证 - 例如,即使 s3 无效,s6 仍然必须经过验证。因此,必须评估所有 if 语句,无论有多少被评估为真。
我该如何解决这个问题?
【问题讨论】:
-
String有一个方法isEmtpy()是你的第一个 if 更自然的选择 -
e2、e3等是什么类型?他们有没有一种方法可以用来检查是否设置了错误? -
@ErickG.Hagstrom e1,e2 属于 Android 平台的 EditTexts 类型。他们有用于抛出错误的 setError 方法
标签: java if-statement