特定のインデックスが特定の文字になるかどうかを判断しようとしている単純な文字列があります。
私はこのようにしようとしています(しかし、コンパイルエラーが発生します):
if(myString.charAt(7).equals("/")) {
// do stuff
} else {
// do other stuff
}
エラー:
Type mismatch: cannot convert from char to boolean
(myString.charAt(7).equals("/")
charAt()
charを返すため、次のようにする必要があります:
myString.charAt(7) == '/'
この回答には、おそらくあなたがやろうとしていたことを提供するいくつかの解決策があります。これは、単一の文字を別の単一の文字と比較することです。彼らは素晴らしいことをしたので、私はそれについては触れません。
ただし、必要に応じて引き続き 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
}
if(myString.charAt(7)== '/') {
// do stuff
} else {
// do other stuff
}
文字を二重引用符で囲むと、String
. 一重引用符はそれをchar
. そして、文字をリテラル==
と比較Objects
し、equals メソッドと比較します。
charAt()
object ではなく char を返すため、そのように比較する必要があります。
if(myString.charAt(7)== '/') {
...
を一重引用符で囲んで/
ください。