1

可能重复:
如何比较 Java 中的字符串?

我有这段代码,它在从 url 检索值时工作正常,但它没有认识到字符串是“True”是我需要的 toString() 还是其他什么?

try {
    URL url = new URL("http://www.koolflashgames.com/test.php?id=1");
    URLConnection yc = url.openConnection();
    BufferedReader in = new BufferedReader(new InputStreamReader(yc
            .getInputStream()));
    inputLine = in.readLine();
    inputLine = inputLine.toString();
    if(inputLine == "True") {
        logger.info(inputLine);
        player.sendMessage("Thanks");
    }else{
        logger.info(inputLine);
        player.sendMessage("HAHAHA");
    }
    in.close();
} catch (Exception e) {
    e.printStackTrace();
}
4

4 回答 4

4

您不能用于==比较字符串的内容,因为它们是对象。您必须创建一个方法来比较对象。对于字符串,您可以使用stringName.equals(otherString).

于 2012-11-04T04:08:22.047 回答
3

您必须使用 equals 来比较字符串。代替:

if(inputLine == "True") {

和:

if(inputLine.equals("True")) {

运算符 == 告诉您两个引用是否引用同一个对象,而不是值是否相同。

于 2012-11-04T04:08:46.770 回答
3

我不敢苟同。使用.equalsIgnoreCase()忽略大小写比较字符串的方法。这将匹配所有情况,例如“True”、“TRue”、“tRue”.. 等大约 16 个匹配项。

于 2012-11-04T04:11:48.393 回答
2

为了比较String对象,请使用该equals()方法。

==运算符检查两个 s 是否具有相同的String引用。

请参阅如何比较 Java 中的字符串?了解更多信息。

于 2012-11-04T04:08:29.893 回答