String a ="the STRING TOKENIZER CLASS ALLOWS an APPLICATION to BREAK a STRING into TOKENS. ";
StringTokenizer st = new StringTokenizer(a);
while (st.hasMoreTokens()){
System.out.println(st.nextToken());
上記のコードを指定すると、出力は次のようになります。
the
STRING TOKENIZER CLASS
ALLOWS
an
APPLICATION
to
BREAK
a
STRING
into
TOKENS.
私の唯一の質問は、なぜ「STRING TOKENIZER CLASS」が 1 つのトークンにまとめられたのか????????
このコードを実行しようとすると、
System.out.println("STRING TOKENIZER CLASS".contains(" "));
それは面白い結果を出力しました、
間違い
論理的に聞こえませんか?何がうまくいかなかったのかわかりません。
何故かJavaがスペースを有効なスペースと認識していなかったのが原因でした。でも、前処理から載せたコードまでどうしてこうなったのかはわかりません。
みんな、強調する必要があるのは、以下のコードが上記のコードの前に最初に実行される..
if (!suspectedContentCollector.isEmpty()){ イテレータ i = expectedContentCollector.iterator(); 文字列 temp=""; while (i.hasNext()){ temp+=i.next().toLowerCase()+ " "; } StringTokenizer st = 新しい StringTokenizer(temp);
while (st.hasMoreTokens()){
temp=st.nextToken();
temp=StopWordsRemover.remove(temp);
analyzedSentence = analyzedSentence.replace(temp,temp.toUpperCase());
}
}
したがって、大文字に変更すると、どこかで何かがうまくいかなかったようで、特定のスペースだけが認識されないことに気付きました。ドキュメントからテキストを取得する理由はありますか?
次のコード、
String a ="STRING TOKENIZER クラスは、アプリケーションが STRING を TOKENS に分割することを許可します。"; for (int i : a.toCharArray()) { System.out.print(i + " "); }
次の出力が生成され、
116 104 101 32 83 84 82 73 78 71 160 84 79 75 69 78 73 90 69 82 160 67 76 65 83 83 32 65 76 76 79 87 83 32 97 110 32 65 80 80 76 73 67 67 65 84 73 111 32 66 82 69 65 75 32 97 32 83 84 82 73 78 71 32 105 110 116 111 32 84 79 75 69 78 83 46 160 32