我有一个简单的字符串,我试图确定一个特定的索引是否会产生一个特定的字符。
我正在尝试这样做(但我得到编译错误):
if(myString.charAt(7).equals("/")) {
// do stuff
} else {
// do other stuff
}
错误:
Type mismatch: cannot convert from char to boolean
(myString.charAt(7).equals("/")
应该遵循,因为charAt()
返回字符:
myString.charAt(7) == '/'
if(myString.charAt(7)== '/') {
// do stuff
} else {
// do other stuff
}
将字符放在双引号中使其成为String
. 单引号使它成为一个char
. 并且您将字符与文字==
进行比较,而Objects
与 equals 方法进行比较
这个答案有几个解决方案可以为您提供您可能想要做的事情,即将单个字符与另一个单个字符进行比较。我不会重复这个,因为他们做得很好。
但是如果你愿意,你仍然可以使用字符串,并为未来做准备。(也许“/”更改为“//”?)您可以这样做:
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
}
charAt()
返回字符,而不是对象,所以你需要这样比较它:
if(myString.charAt(7)== '/') {
...
注意周围的单引号/
。
if(myString.substring(7,8).equals("/"))
或者
if(myString.charAt(7)=='/')
或者
if(myString.indexOf("/"))==7) can be use