1

ファイルから行ごとに読み取っていて、その文字列に別の文字列が含まれているかどうかを確認したいので、String.containsメソッドを使用しますが、常に false を返します。

チェックする単語が行の最初であるため、入力行を分割しようとしました(String.containsまたはを使用して)。String.equals

チェックしたい文字列は<now>、行に含まれている場合でもfalseになることに気付いた分割を行っています。

奇妙なことに、文字列は正しく出力されますが、その長さは文字列よりも大きく<now>(スペースがないことを確認するために置換を使用したとしても)、それが私の問題だと思います。ファイルのエンコーディングに依存すると思いますが、そうであれば解決策はありますか?

ファイルは別のプログラム (Praat) の出力であるため、別の方法で保存することはできません。

line = inFile2.nextLine();
String[] w = line.split("[\t\\s]");
String checking = w[0];
checking.replace(" ","");
checking.replace("/t","");
String st ="<now>";
System.out.println(!checking.equals(st)); //returns always true
System.out.println(st.length()); //returns 5
System.out.println(checking.length());  //returns 11
System.out.println(checking); //it prints <now> correctly

入力の文字列は次のようになります。<now> 236 62 elena information-relation

4

4 に答える 4

0

短くするには、次のようにすることもできます。

String Checking = W[0].replace(" ", "").replace("/t", "");

もちろん、これは好みによって異なります。

于 2013-11-14T12:27:51.287 に答える
0

UTF-8エンコーディングを使用してテキストファイルを再保存することを解決しました。

于 2013-11-14T15:44:57.137 に答える