1

我有一个简单的字符串,我试图确定一个特定的索引是否会产生一个特定的字符。

我正在尝试这样做(但我得到编译错误):

if(myString.charAt(7).equals("/")) {
    // do stuff
} else {
   // do other stuff
}

错误:

Type mismatch: cannot convert from char to boolean

4

5 回答 5

5
(myString.charAt(7).equals("/")

应该遵循,因为charAt()返回字符:

myString.charAt(7) == '/'
于 2013-07-02T19:49:14.560 回答
4
if(myString.charAt(7)== '/') {
    // do stuff
} else {
   // do other stuff
}

将字符放在双引号中使其成为String. 单引号使它成为一个char. 并且您将字符与文字==进行比较,而Objects与 equals 方法进行比较

于 2013-07-02T19:49:00.713 回答
4

这个答案有几个解决方案可以为您提供您可能想要做的事情,即将单个字符与另一个单个字符进行比较。我不会重复这个,因为他们做得很好。

但是如果你愿意,你仍然可以使用字符串,并为未来做准备。(也许“/”更改为“//”?)您可以这样做:

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
}
于 2013-07-02T19:52:03.277 回答
3

charAt()返回字符,而不是对象,所以你需要这样比较它:

if(myString.charAt(7)== '/') {
...

注意周围的单引号/

于 2013-07-02T19:50:48.627 回答
-2
if(myString.substring(7,8).equals("/")) 

或者

if(myString.charAt(7)=='/')

或者

if(myString.indexOf("/"))==7)  can be use
于 2013-07-02T20:01:43.950 回答