【问题标题】:How to analyse more then one character in the string for use in a switch?如何分析字符串中多个字符以用于开关?
【发布时间】:2017-04-09 10:15:34
【问题描述】:

下面是我的switch语句,它采用字符串'tops':

switch (tops) {

            case "m":
                if (size.equals("m")) {
                    mb += 1.00;
                    to += "Mozzarella";
                } else if (size.equals("l")) {
                    lb += 1.50;
                    to += "Mozzarella";
                }
                break;

            case "o":
                if (size.equals("m")) {
                    mb += 0.80;
                    to += "Olives";
                } else if (size.equals("l")) {
                    lb += 1.20;
                    to += "Olives";
                }
                break;

            case "h":
                if (size.equals("m")) {
                    mb += 1.40;
                    to += "Ham";
                } else if (size.equals("l")) {
                    lb += 2.10;
                    to += "Ham";
                }

                break;
            case "p":
                if (size.equals("m")) {
                    mb += 1.00;
                    to += "Pineapple";
                } else if (size.equals("l")) {
                    lb += 1.50;
                    to += "Pineapple";
                }
                break;

            case "s":
                if (size.equals("m")) {
                    mb += 0.80;
                    to += "Spinach";
                } else if (size.equals("l")) {
                    lb += 1.50;
                    to += "Spinach";
                }
                break;
            default:
                to = "default";
                break;
}

目前我的开关只是对字符串中的第一个字符进行分析,而不是全部分析它们是否包含大小写的字母。

例如,如果我输入“ms”作为上衣,我会得到正确的输出,但如果我输入“msmh” 它不会并导致默认或终止

【问题讨论】:

  • 如果您不能这样做,请在 switch。请改用if...else if...else
  • 你的例子不正确。如果字符串tops 包含"ms",则"m" 的switch case 不匹配。切换字符串总是比较整个字符串而不是第一个字符。
  • 不用写if声明@aahung
  • 目前你的切换已经太复杂了。你应该问如何简化整个事情......
  • 只需遍历字符串中的所有字符,并在每次迭代时对当前字符执行switch

标签: java string switch-statement break


【解决方案1】:

在java中分析不止一种情况,你必须把第二种情况放在break之前,相当于else if(boolean || boolean)

例如:

case "B": 
case "C":
{
    //CODE
    break;
}

【讨论】:

    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多