Java 如何将if-else具有布尔条件转换为switch?
我想将下面的if-else循环转换为我想转换布尔条件的开关情况Java 如何将if-else具有布尔条件转换为switch?,java,if-statement,switch-statement,Java,If Statement,Switch Statement,我想将下面的if-else循环转换为我想转换布尔条件的开关情况 public String getRandomValues(WebElement input) { String value; if (input.getAttribute("id").equalsIgnoreCase("FIRSTNAME")) { value = "User"; } else if (input.getAttribute("id").equa
public String getRandomValues(WebElement input) {
String value;
if (input.getAttribute("id").equalsIgnoreCase("FIRSTNAME")) {
value = "User";
} else if (input.getAttribute("id").equalsIgnoreCase("LASTNAME")) {
value = "Name";
} else if (input.getAttribute("id").equalsIgnoreCase("ACCOUNTNUMBER")) {
value = "0123945486855";
} else if (input.getAttribute("id").equalsIgnoreCase("EMAIL")) {
value = "user@domain.com";
} else if (input.getAttribute("id").equalsIgnoreCase("PHONE")) {
value = "98287825858";
} else if (input.getAttribute("id").equalsIgnoreCase("DATE")) {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
value = dateFormat.format(new Date());
} else {
value = "Random Value 123";
}
return value;
}
有人能帮忙吗?您可以这样做:
String id = input.getAttribute("id").toUpperCase();
switch(id) {
case "FIRSTNAME":
// something
break;
.....
}
开关接受
字符串作为参数,因此您可以执行以下操作:
switch (input.getAttribute("id").toUpperCase())
{
case "FIRSTNAME":
value = "User";
break;
case "LASTNAME":
value = "Name";
break;
//and so on
case "DATE":
{
// You need braces to declare a local variable in a case
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
value = dateFormat.format(new Date());
break;
}
default: // the same as your 'else'
value = "Random Value 123";
}
switch(input.getAttribute(“id”).toUpperCase(){case“FIRSTNAME”:…
令人惊讶的是,根据区域设置,所有四个答案(加上此处注释中的答案)都可能会失败。@Patrick:除此之外,我想了解处理诸如……input.getAttribute(“id”).contains(“PHONE”)等情况的方法
@SameerPatil这不是开关的用途。@Patrick:在这种情况下,除了if-else之外还需要使用什么?要获得不区分区域设置的字符串的正确结果,请使用toUpperCase(locale.ENGLISH)。否则,您将无法通过Turkey测试。如果条件变为“contains”而不是“equalsIgnoreCase”?在这种情况下,您将无法使用switch。
public String getRandomValues(WebElement input) {
String inputValue = input.getAttribute("id").toUpperCase();
switch (inputValue) {
case "FIRSTNAME":
return "User";
case "LASTNAME":
return "Name";
case "ACCOUNTNUMBER":
return "0123945486855";
case "EMAIL":
return "user@domain.com";
case "PHONE":
return "98287825858";
case "DATE":
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
return dateFormat.format(new Date());
default:
return "Random Value 123";
}
}