1

それぞれのケースを表すためにcharを使用するswitchステートメントを書き込もうとしています。私の教科書では、例はこれを行うためにcharを使用できることを示していますが、プログラムをコンパイルすると、次のようになります。

    StudentInvoiceListMenuApp.java:54: error: incompatible types
        case 'R':
             ^
    required: String
    found:    char
    1 error

これは私のコードです:

    switch (inputCode) {

        case 'R':
            System.out.println("\nEnter file name:");
            fileName = menuApp.nextLine();
            if (inputCode.trim().length() == 0) {
                break; // no file name entered
            }
4

4 に答える 4

5

タイプは...ではなくinputCodeタイプのようです。したがって、Java 7を使用している場合は、次のように変更するだけです。Stringchar

case "R":

または、のタイプをに変更し、inputCodecharの場所で適切な調整を行います。(Java 7を使用していない場合は、これが唯一のオプションですが、Java 7を使用していると思われます。そうしないと、別のコンパイラエラーが発生します。)

于 2012-10-09T22:33:05.080 に答える
1

問題は、inputCodeが文字列であるということです。文字列の最初の要素を確認する場合は、次のようにする必要があります。

switch (inputCode[0]) {

単一の文字列と比較する場合は、次のことを行う必要があります。

case "R":
于 2012-10-09T22:33:10.530 に答える
0

inputCodeのインスタンスのようでString、あなたはそれをと比較しようとしていますchar

スイッチの文字列は、java-7以降でサポートされます

于 2012-10-09T22:33:17.473 に答える
0

inputCodeStringインスタンスです。

于 2012-10-09T22:33:42.730 に答える