如果else具有布尔条件,如何将其转换为switch?

kmpatx3s  于 2021-07-13  发布在  Java
关注(0)|答案(3)|浏览(434)

我想把下面的if-else循环转换成switch case,在这里我想转换布尔条件。

  1. public String getRandomValues(WebElement input) {
  2. String value;
  3. if (input.getAttribute("id").equalsIgnoreCase("FIRSTNAME")) {
  4. value = "User";
  5. } else if (input.getAttribute("id").equalsIgnoreCase("LASTNAME")) {
  6. value = "Name";
  7. } else if (input.getAttribute("id").equalsIgnoreCase("ACCOUNTNUMBER")) {
  8. value = "0123945486855";
  9. } else if (input.getAttribute("id").equalsIgnoreCase("EMAIL")) {
  10. value = "user@domain.com";
  11. } else if (input.getAttribute("id").equalsIgnoreCase("PHONE")) {
  12. value = "98287825858";
  13. } else if (input.getAttribute("id").equalsIgnoreCase("DATE")) {
  14. DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
  15. value = dateFormat.format(new Date());
  16. } else {
  17. value = "Random Value 123";
  18. }
  19. return value;
  20. }

有人能帮忙吗?

tyu7yeag

tyu7yeag1#

您可以这样做:

  1. String id = input.getAttribute("id").toUpperCase();
  2. switch(id) {
  3. case "FIRSTNAME":
  4. // something
  5. break;
  6. .....
  7. }
ncgqoxb0

ncgqoxb02#

交换机接受 String 作为参数,所以您可以:

  1. switch (input.getAttribute("id").toUpperCase())
  2. {
  3. case "FIRSTNAME":
  4. value = "User";
  5. break;
  6. case "LASTNAME":
  7. value = "Name";
  8. break;
  9. //and so on
  10. case "DATE":
  11. {
  12. // You need braces to declare a local variable in a case
  13. DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
  14. value = dateFormat.format(new Date());
  15. break;
  16. }
  17. default: // the same as your 'else'
  18. value = "Random Value 123";
  19. }
展开查看全部
u2nhd7ah

u2nhd7ah3#

  1. public String getRandomValues(WebElement input) {
  2. String inputValue = input.getAttribute("id").toUpperCase();
  3. switch (inputValue) {
  4. case "FIRSTNAME":
  5. return "User";
  6. case "LASTNAME":
  7. return "Name";
  8. case "ACCOUNTNUMBER":
  9. return "0123945486855";
  10. case "EMAIL":
  11. return "user@domain.com";
  12. case "PHONE":
  13. return "98287825858";
  14. case "DATE":
  15. DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
  16. return dateFormat.format(new Date());
  17. default:
  18. return "Random Value 123";
  19. }
  20. }
展开查看全部

相关问题