1

テキストをファイルから単語に分割しようとしています

split("[^0-9a-zA-Z]+") 

しかし、結果には空の文字列があります。この問題を解決するにはどうすればよいですか?

長さ | 配列内の数値| 単語 | カウント | %

2   [  1]  to       9   5.56 %
0   [  2]           6   3.70 %
5   [  3]  there        6   3.70 %
6   [  4]  result       3   1.85 %
4   [  5]  text         3   1.85 %
3   [  6]  but      3   1.85 %

出力は次のとおりです。

I'm trying to split text from file to words

split("[^0-9a-zA-Z]+") 
but there are result empty strings too. Is there any solutions to solve this problem?

3回貼り付け

4

1 に答える 1

2

の場合、渡すパラメーターは、用語の区切り記号String.splitに一致する正規表現です。セパレータ自体が削除されます。

正規表現は単語に一致するため、実際には単語を削除し、空白を用語として残しています。

例えば:

速い茶色のキツネ

以下のように分割されます

[The][ ][quick][ ][brown][ ][fox]
 Sep  0   Sep   1   Sep   2  Sep

3 つの単一スペース文字列の配列になります。

あなたの単語のいくつかは正規表現と完全に一致していないと思います。そのため、結果にもいくつかの単語が表示されます。

解決策:逆の方法で行うか(myString.split('\\s')良いスタートのようです)、マッチャーを使用して、何も見つからなくなるまで繰り返します。

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#split%28java.lang.String%29を参照してください。

于 2012-12-20T14:11:17.757 に答える