私はoutputTest
がStringであると仮定しています。
userInput.equals
に基づいて、のようなプリミティブ型ではないと仮定しています(プリミティブ型にはメソッドがないため)。それはまたCharacter
ではない、さもなければPass
何度か見る。したがって、文字列である可能性が最も高いです。
outputTest.charAt(i)
戻りchar
ていますが、equalsメソッドをString
と比較されているように見えます:equals
はObject
を期待するので、だから、
964 publicboolean equals(Object anObject) {
965 if (this == anObject) {
966 returntrue;
967 }
968 if (anObject instanceofString) {
969 String anotherString = (String)anObject;
970 int n = value.length;
971 if (n == anotherString.value.length) {
972 char v1[] = value;
973 char v2[] = anotherString.value;
974 int i = 0;
975 while (n-- != 0) {
976 if (v1[i] != v2[i])
977 returnfalse;
978 i++;
979 }
980 returntrue;
981 }
982 }
983 returnfalse;
984 }
、(outputTest.charAt(i)
から返される)char
は自動的にCharacter
に箱詰めされ、しかしCharacter
は延長されないのでString
テスト
if (anObject instanceof String)
が失敗し、すぐにreturn false;
に移動します。
あなたは1 String
があなたのオブジェクトUSERINPUTのデータ型は何別
outputTest.contains(userInput)
http://stackoverflow.com/questions/を考慮することができます7520432/what-is-the-the-difference-vs-equals-in-java – mika
outputTest変数を教えてください。何が入っているのですか? –
'outputTest.charAt(i)'の代わりに 'outputTest.substring(i、i + 1)'を使用してください。 – saka1029