我有一个简单的字符串,我试图确定特定的索引是否会产生特定的字符。
我试图这样做(但我得到编译错误):
if(myString.charAt(7).equals("/")) {
// do stuff
} else {
// do other stuff
}
错误:
Type mismatch: cannot convert from char to boolean
答案 0 :(得分:5)
(myString.charAt(7).equals("/")
应该遵循因为charAt()
返回char:
myString.charAt(7) == '/'
答案 1 :(得分:4)
if(myString.charAt(7)== '/') {
// do stuff
} else {
// do other stuff
}
将字符放在双引号中会使其成为String
。单引号使其成为char
。并且您将字符与文字==
进行比较,而您将Objects
与等号方法进行比较
答案 2 :(得分:4)
这个答案有几个解决方案可以为您提供您可能尝试做的事情,即将单个字符与另一个字符进行比较。我不会过去,因为他们做得很好。
但如果您愿意,您仍然可以使用String,并为将来做好准备。 (也许“/”变为“//”?)你可以这样做:
if(myString.substring(7,8).equals("/")) {
// stuff
}
然后你可能就像
public static final String SEPARATOR_STRING = "//";
public static final int SEPARATOR_START = 7;
public static final int SEPARATOR_END = 7 + SEPARATOR_STRING.length();
// later
if(myString.substring(SEPARATOR_START,7SEPARATOR_END).equals(SEPARATOR_STRING)) {
// stuff
}
答案 3 :(得分:3)
charAt()
返回char,而不是对象,因此您需要以这种方式进行比较:
if(myString.charAt(7)== '/') {
...
请注意/
附近的单引号。
答案 4 :(得分:-2)
if(myString.substring(7,8).equals("/"))
或
if(myString.charAt(7)=='/')
或
if(myString.indexOf("/"))==7) can be use