2017-05-21 19 views
3

テキストファイルの内容を取得しようとしていて、アルファベット以外のものをすべて削除し、単語の個別処理用にStringの配列に変換しようとしています。私はこれを行う、文字列をトークン化するために、その後Javaの文字列配列から空の文字列要素を削除する

String temp1= IOUtils.toString(FIS,"UTF-8"); 
String temp2=temp1.replaceAll("[,.!;:\\r\\n]"," "); 

そして: 私は、テキストファイルを取得するため、これを行う

String[] tempStringArray = temp2.split(" "); 

問題は、アレイが作成されるとき、空があるということですStringでこれらの空のStringは改行の位置にあり、複数の空白があり、テキストファイルの句読点などが置き換えられています。
これらの空のStringStringアレイから削除するか、またはStringアレイに入力できない方法で削除します。
どうすればいいですか?

答えて

4
のように、すべての空白文字によって

スプリット:String[] tempStringArray = temp2.split("\\s+")

+0

ありがとうございました。 –

+0

うん@Shankhadeep Ghoshal、あなたは受け入れられた答えとしてマークします。 –

2

例では、キャラクタセット[、。;:\ r \ n]から複数のキャラクタが行内にある場合、それは複数の空白で置き換えられます。 split()メソッドを呼び出すと、1行の複数の空白を参照する空のオカレンスが配列に配置されます。

split()メソッドで正規表現を使用することができます。これは、例の方がはるかに優れています。

temp2.split(" ")temp2.split("\\s+")に置き換えてみてください。これは、行の中の複数のスペースを探し、空のスペースの大きなギャップの周りのテキストをトークン化するだけです。

2

ダニエル・アーサーヤングミリーの答えが正しいですが、あなたが避けたい直接文字で分割することによって、1は2つのステップを置き換えることができます。

String[] tempStringArray = temp1.split("[,.!;:\\s]+"); 
+0

同様に動作します。答えに感謝 –

関連する問題