如何匹配字符串中特定索引的char?

时间:2013-07-02 19:48:03

标签: java string

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

我试图这样做(但我得到编译错误):

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

错误:

Type mismatch: cannot convert from char to boolean

5 个答案:

答案 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