带有一个char的Java子字符串

时间:2012-10-14 20:24:51

标签: java substring

我有

String x = g.substring(0, 1);
if (x == "S") {
    stuff
}

我有一个字符串,“安全”,但“东西”没有运行,我的手表说x值= S而x=="S" =假。

9 个答案:

答案 0 :(得分:2)

==用于identity比较,它会检查两个reference是否指向同一个对象(在您的情况下,对象是String)。

您应该使用equals方法来比较字符串的内容:

if (x.equals("S"))

答案 1 :(得分:1)

这会比较您应该使用x=="S"的引用而不是字符串相等"S".equals(x)

答案 2 :(得分:1)

改为使用String类的equals()方法,而不是==

答案 3 :(得分:0)

if(x.equals("S"))

==检查参考而不是值。

答案 4 :(得分:0)

您需要使用String.equals来比较字符串内容。 ==运算符用于比较对象引用。

切换参数的位置将避免NullPointerException

if ("S".equals(x))

答案 5 :(得分:0)

您应该使用.equals方法来比较字符串(以及一般的任何非基元)。

if (x.equals("S")) {
    //stuff
}

答案 6 :(得分:0)

在Java中equals()检查相等性,==检查身份。

答案 7 :(得分:0)

很多问题......

  • 您的变量xString!您不应该使用==运算符,而是使用.equals()

  • 此外,在您使用时,您应该使用.equalsIgnoreCase()来忽略大小写。

  • 顺便说一下,我应该注意到还有String.charAt(int)函数,它返回指定位置的字符......

但是如果你想选择所有字符串(你的问题没有透露你原来的意图为什么以及你想要实现的目标),但我会研究正则表达式,并使用String.matches()

答案 8 :(得分:0)

为什么不使用charAt函数并按照以下方式执行此操作:

    char x = g.charAt(0);
    if (x == 'S') {
       // Stuff
    }

如果您不想使用char,请使用equals块比较中的if方法:

   String x = g.substring(0, 1);
   if (x.equals("S")) {
      // stuff
   }