何らかの理由で、特定の場合にstring.splitの使用に問題があります。それはファイルのエンコーディングと関係があるに違いありません。ただし、EclipseのEncodingで、すべての場合に「Default MacRoman」と表示されていることを確認しました。これは、すべてのコードファイルで使用されるデフォルトです。
それでも、Javaファイルの1つからこの文字列を含む別のファイルに文字列をコピーすると、次のようになります。
"Test String" - while typing this string again "Test String"
違いがあります。最初の「」スペースは160としてコード化され、2番目のスペースは32としてコード化されます。
したがって、分割を使用するときは、正しくエンコードされた「」を使用する必要があります。
これが私が今それをしている方法です-私が思うにあまりエレガントではありません。
longText
分割するテキストが含まれている場所
char splitChar;
if (longText.indexOf((char) 32) > 0) {
splitChar = (char) 32;
} else
splitChar = (char) 160;
String splitCharString = String.format("%c", splitChar);
String[] tokens = longText.split(splitCharString);
これを行うためのより良い方法はありますか?
psEclipseのファイルのエンコーディングをMacRomanに明示的に変更するだけでは機能しません