我有
String x = g.substring(0, 1);
if (x == "S") {
stuff
}
我有一个字符串,“安全”,但“东西”没有运行,我的手表说x值= S而x=="S"
=假。
答案 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)
很多问题......
您的变量x
是String
!您不应该使用==
运算符,而是使用.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
}