用for循环替换if语句(Java)

Ria*_*nF2 3 java string methods

我正在研究一个项目,其中一条评论是我的if语句太长了.我同意这一点,但我仍然困惑如何用建议的for循环替换它.它一直让我发疯.该项目是用句子分析辅音并报告它们是否在其中.这是我使用的代码.该项目已被标记,因此这更像是"我的错误在哪里/哪里可以改进问题".

if ((userInput.contains("b"))||(userInput.contains("c"))||(userInput.contains("d"))||
    (userInput.contains("f"))||(userInput.contains("g"))||(userInput.contains("h"))||
    (userInput.contains("j"))||(userInput.contains("k"))||(userInput.contains("l"))||
    (userInput.contains("m"))||(userInput.contains("n"))||(userInput.contains("p"))||
    (userInput.contains("q"))||(userInput.contains("r"))||(userInput.contains("s"))||
    (userInput.contains("t"))||(userInput.contains("v"))||(userInput.contains("w"))||
    (userInput.contains("x"))||(userInput.contains("y"))||(userInput.contains("z")))
        //checking for consonants
        results += "The input contains consonants";
else 
    results += "The input contains no consonants";
Run Code Online (Sandbox Code Playgroud)

Gor*_*rkk 5

你可以创建一个辅音数组(可能作为你的类的静态常量),并使用一个函数来完成工作,这里有一些东西(这里是伪代码)

boolean hasConsonants(String userInput) {
    for (String consonant : consonants)
        if (userInput.contains(consonant)
            return true;
    return false;
}
Run Code Online (Sandbox Code Playgroud)

然后你会打电话

if (hasConsonants(userInput))
    results += "The input contains consonants";
else
    results += "The input contains no consonants";
Run Code Online (Sandbox Code Playgroud)

PS最好让你的consonants数组成为一个char[]char不是String每个循环中使用