java - 在 switch case 语句中使用方法

标签 java if-statement methods switch-statement

我想知道在 switch 情况下是否可以使用“contains()”等方法。我正在尝试将以下 if 语句放入 switch case 中:

String sentence;
if(sentence.contains("abcd")){
// do command a
}
else if(sentence.contains("efgh")){
// do command b
}
else if(sentence.contains("ijkl")){
// do command c
}
else{
//do command d
}

非常感谢您的帮助。

最佳答案

实际上你可以把这个 if 改成 switch,但它有点不可读:

    final String sentence;
    int mask = sentence.contains("abcd") ? 1 : 0;
    mask |= sentence.contains("efgh") ? 2 : 0;
    mask |= sentence.contains("ijkl") ? 4 : 0;
    switch (mask) {
    case 1:
    case 1 | 2:
    case 1 | 4:
    case 1 | 2 | 4:
        // do command a
        break;
    case 2:
    case 2 | 4:
        // do command b
        break;
    case 4:
        // do command c
        break;
    default:
        // do command d
    }
}

关于java - 在 switch case 语句中使用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949723/

相关文章:

java - setAdapter() 使应用程序崩溃

java - java中如何找到序列和最大的子数组?

c# - if() 语句行为,为什么会进入循环?

java - 从多维获取字符串

Ruby Monk - 了解继承 - 不接受替代解决方案?

java - Glassfish 2 在 Glassfish 4 上的应用程序 : "Cannot resolve reference... because there are 2 ejbs in the application"?

java - Hibernate 中的 ResultTransformer 返回 null

c# - 测试 url 参数的值,然后从 c# 后面的代码更改 SqlDataSource.SelectCommand

grails - Groovy 1.5.x/Grails 1.0.x If-Else语句错误

javascript - 方法排序不排序最后一个嵌套数组JavaScript