2017-05-19 9 views
2
StringTokenizer tokenizer = new StringTokenizer(s, " ,.:;?![]'"); 

デリミタ(この場合はすべての句読点)を取得する方法はありますか?StringTokenizerからデリミタを取得するには?

たとえば、「これはテストですが、それもテストですか?」

トークン化の結果に2つのトークンも含まれていますか?

これは可能ですか?

+1

ユーザー3のparamコンストラクタ https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html:trueに設定すると、あまりにも区切り文字を返しtokenzierようになります#StringTokenizer-java.lang.String-java.lang.String-boolean- –

答えて

3

StringTokenizerには、第3のboolean引数を取るオーバーロードされたコンストラクタがあります。

StringTokenizer tokenizer = new StringTokenizer(s, " ,.:;?![]'", true); 
// Here ---------------------------------------------------------^ 
+0

これはクールです!私はスペースを表現するために "\\ s"を使用してテストしましたが、なぜ動作しませんか? – user697911

+1

@ user697911 'StringTokenzer'は、正規表現ではなく、区切り文字として使用する文字列を受け取ります。区切り引数として '' \\ s "'を使うと、空白ではなく区切り文字として ''\'と' 's ''が使われます。 – AJNeufeld

関連する問題