切换方法不是 运行

Switch Method not running

Screenshot of my question I'm answering

我运行正在用我的开关方法解决这个问题,其中需要使具有此开关的方法静态。它 运行s 当我从 Main 方法中删除 static 时,没有错误它很高兴直到我去 运行 它我不能。

这是我的代码文件,我不知道为什么 运行 会出现这样的错误,我完全不知道发生了什么。

 public static void main(String[] args) {
    String sentence = "CsprdkoPurln dhVqq f gul col r jcwk ujd";
    System.out.println(howManyVowels(sentence));

}

public String howManyVowels(String sentence) {
    String userString;
    int a=0, e=0, i=0, o=0, u=0, other=0;
    char vowels;

    Scanner scan = new Scanner (System.in);
    userString = scan.nextLine();

    for (int count=0; count < userString.length(); count++)
    {
        vowels = userString.charAt(count);

        switch (vowels) {
            case 'a' -> a++;
            case 'e' -> e++;
            case 'i' -> i++;
            case 'o' -> o++;
            case 'u' -> u++;
            default -> other++;
        }
    }
    return ("Number of each lowercase vowel in the string: \n") + ("a: " + a) + ("\n" + "e: " + e) + ("\n"+"i: " + i) + ("\n"+"o: " + o) + ("\n"+"u: " + u) + ("\n"+"other " + other);

}
}

我 运行 遇到的错误是无法在代码下进行。老实说,我不知道它有什么问题。

它 运行 通过的程序显然使用了旧的 switch 方法。我还没有听说过,因为我所写的就是我所知道的开关的样子。最初我把它格式化为,

    switch (vowels)
    {
        case 'a':
            a++;
            break;
        case 'e':
            e++;
            break;
        case 'i':
            i++;
            break;
        case 'o':
            o++;
            break;
        case 'u':
            u++;
            break;
        default:
            other++;
    }

除非 Main 方法不是静态的,否则我无法到达 运行,或者我将 howManyVowels 设置为静态,这不在问题标准中,因此被打回错误 + 错误。

我看到您没有使用“howManyVowels”函数的参数“sentence”,而是要求用户输入句子:

这是您可以更正的方法:

    public static void main(String[] args) {

    String sentence = "CsprdkoPurln dhVqq f gul col r jcwk ujd";
  
    System.out.println(howManyVowels(sentence));
   
}

public static String howManyVowels(String sentence) {
    int a=0, e=0, i=0, o=0, u=0, other=0;
    char vowels;

    for (int count=0; count < sentence.length(); count++)
    {
        vowels = sentence.charAt(count);

        switch (vowels)
        {
            case 'a':
                a++;
                break;
            case 'e':
                e++;
                break;
            case 'i':
                i++;
                break;
            case 'o':
                o++;
                break;
            case 'u':
                u++;
                break;
            default:
                other++;
        }
    }
    String str = ("Number of each lowercase vowel in the string: \n") +
            ("a: " + a) + ("\n" + "e: " + e) + ("\n"+"i: " + i) +
            ("\n"+"o: " + o) + ("\n"+"u: " + u) +
            ("\n"+"other " + other);               
return str;
}

如果您不想要静态上下文,您可以创建另一个名为 Calcul 的类,其中包含“howManyVowels”方法并在主类中调用它,如下所示:

public static void main(String[] args) {

    String sentence = "CsprdkoPurln dhVqq f gul col r jcwk ujd";
    Calcul.howManyVowels(sentence);
   
}