2017-10-01 19 views
-3

正規表現は、複数のシンボルを通じてString s="He is a very very good boy, isn't he?"分割文字列は、正規表現

String[] sa = s.split("[!, ?._'@]"); 
System.out.println(sa.length); 
for (String string : sa) { 
    System.out.println(string); 
} 

11 
He 
is 
a 
very 
very 
good 
boy 

isn 
t 
he 

を分割が、どのようにこのスペースが来ていますか?

+0

"、"は何を期待していますか?あなたの入力にはリテラルスペースが続くリテラルカンマがあります。あなたの質問を明確にしてください。 –

+0

おそらく、彼は第1回目の結果にスペースがあり、第2回ではないことを知りたいと思うかもしれません。長さが11ではなく10であることを考慮してください。 –

+0

文章を特殊文字で分割して出力したいと思います。単語のみを使用します。最初の場合は空白がありません....スペースを使用しています私はスペースを使わない場合はどうすればよいでしょうか?単語のトークン(単語)とnoをどうやって得るのですか? –

答えて

0

split関数は少年後コンマ,と空間間の空の文字列を含む配列要素を作成しているので、これが起こります。

arr = ['He', 'is', 'a', 'very', 'very', 'good', 'boy', '', 'isn', 't', 'he'] 

この関数は、テキストを分割するときにコンマとスペースの間に何らかのテキストがあり、その空の文字列を効果的に生成します。

+シンボルを使用すると、文字の「グループ」で分割され、コンマとスペースが分割正規表現として使用され、その文字間に空の文字列が生成されません。

関連する問題