0

私はJavaにかなり慣れていないので、このコードが機能しない理由を一生理解できません。単語が副詞であるかどうか、したがって「ly」で終わるかどうかを確認しようとしています(それらは常に小文字になります)。これは私のコードです:

    String str = "evenly";
    int a = str.length()-2;
    int b = str.length();
    String res = (String)str.substring(str.length()-2,str.length());
    System.out.println(res + " == ly -> " + (res == "ly"));

ここでテストしています: http://ideone.com/4FuBwj 出力 次のとおりです。 なぜこうなった?ly == ly -> false
res = "ly"res == "ly"false

4

1 に答える 1

2

@Kon がコメントで述べているように、文字列を == 操作と比較するべきではなく、String.equals() メソッドで行う必要があります。値の間の大文字と小文字の区別を無視したい場合は、 String.equalsIgnoreCase() メソッドを使用することもできます。

System.out.println(res + " == ly -> " + (res.equals("ly")));

または上記のように

System.out.println(res + " == ly -> " + (res.equalsIgnoreCase("ly")));

お役に立てれば!

于 2013-11-04T02:03:06.617 に答える