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 回答