1

私はこのコード作成演習を試みていましたが、とても迷っています!

演習は次のとおりです。

2 つの文字列と 1 つのブール値を入力として受け取るメソッドを完成させます。ブール値が true の場合、このメソッドは最初の 2 つの文字列を比較し、大文字と小文字の区別 (大文字/小文字) を無視します。2 つの文字列が同じ長さである場合、大文字と小文字を区別せずに等しいと見なされ、2 つの文字列の対応する文字は大文字と小文字を区別せずに等しいと見なされます。

ブール値が false の場合、このメソッドは 2 つの String を比較し、最初の String が 2 番目の String と同じ文字シーケンスを表す場合は true、そうでない場合は false を返します。

注: compareTwoStrings("HELLO", "", false)false を返す必要があります。

そして、ここに私の試みがあります:

public boolean compareTwoStrings (String a, String b, boolean isIgnoreCase) 
{ 
    if (a.equalsIgnoreCase(b)) {
        return (isIgnoreCase==true);
    }
    else if (a.equals(b)) {
       return (isIgnoreCase==false);
    }
}

コンパイルさえしません。

4

4 に答える 4

6

あなたはそれを逆にやっています。件名は次のように述べています。ブール値が true の場合はこれを行い、そうでない場合はあれを行います。したがって、同じ方法でプログラムする必要があります。

if (isIgnoreCase) {
    return ...
}
else {
    return ...
}

残りは演習として残します。あなたは自分でそれを理解できるはずです。

于 2013-04-06T16:11:40.813 に答える
2

要求された解決策は次の方法だと思います。

public boolean compareTwoStrings(String a, String b, boolean isIgnoreCase)
{
    if (isIgnoreCase)
    {
        return a.equalsIgnoreCase(b);
    }

    return a.equals(b);
}

Java コンパイラーは、状況によっては if 条件がfalse. そのため、コンパイラーは、少なくとも 1 つのreturnステートメントが到達可能であることを保証できません。

于 2013-04-06T16:13:21.913 に答える
0

これがあなたが探しているものだと思います。

public static void myMethod(String str, String str2, boolean bool) {

    if (bool) {
        str = str.toLowerCase();
        str2 = str2.toLowerCase();
        if (str.equals(str2))
            System.out.println("strings equal");
    }
    else {
        System.out.println("false condition");
    }
}
于 2013-04-06T16:24:35.213 に答える