ArrayListから特定の文字列のindexOfを取得しようとしていますが、チェックを行ったときに文字列が一致していません。ハッシュテーブルのStringListに以下のコードを入力しています。
stringList = new ArrayList<String>
Set st = hashtable.keySet();
Iterator itr = st.iterator();
while(itr.hasNext())
{
stringList.add(((String)itr.next()).trim());
}
stringListから取得しようとしている文字列は、ユーザーが入力したものです。文字列は通常、「!Xxxx ##:##:##xx」それが違いを生む場合。stringListを出力して視覚的にテストしているので、文字列が一致していることがわかります。だから私はそれが==と.equals()に似ていると思います。
また、stringListにハッシュテーブルの特定の文字列を入力し、以下のコードを使用してテストしましたが、常にfalseが返されます。
String keyString = "! Xxxx ##:##:## xx";
if(stringList.get(0).equals(keyString))
System.out.println("true");
System.out.println("false");
だから私は以下のコードを機能させる方法を理解しようとしています
stringList.indexOf(keyString)
文字列が等しいとは見なされないため、必要な-1のみが返されるためです。私が間違っているのは、探している出力を妨げていることです。これは、stringListによって出力されているものを正確に入力しているため、返されるはずの正しいインデックスになります。前に言ったように、これは.equals()の問題だと思いましたが、indexOfは、インデックスを探すときに.equals()を使用し、自分で.equals()をテストした結果を確認しました。