2016-04-27 5 views
2

私は、多くの順列と特殊文字、空白とデータの組み合わせを含むテキストファイルを持っています。 このファイルの内容を配列リストに格納していますが、useDelimiter()関数を使用していない場合、Javaは自分のテキストを完全に読み込んでいます。Javaのデフォルトの区切り文字に加えてカンマとドットをデリミタとして使用する方法

唯一の問題は、その区切り文字としてコンマ,)とドット.)を受け付けないことです。

私は、私も区切り文字などのオプションとしてコンマドットスペースを使用するようにinput.useDelimiter(",|.| |\n")を使用することができます知っているが、Javaは今の私を与えるとして、私が得る結果が正しくありません。

Javaはそれが使用するものは何でもデフォルトの区切り文字と一緒にコンマと区切り文字としてドットを使用するように指示する方法はありますか?あなたの助けを事前に

感謝:)

よろしく、 ラーフル

+0

を使用すると、コンマおよび/またはドット付きの数字を持っている場合は、それだけでBufferedReaderのと 'スプリット(「[\\ \\秒。]」を使用するのが最適かもしれません) '。またはすぐにいくつかの第三者CSVReader –

答えて

0

あなたも区切り文字としてコンマとドットを扱いたい場合は、試すようScannerのデフォルトの区切り文字は、パターン\p{javaWhitespace}+として定義されて

input.useDelimiter("(\\p{javaWhitespace}|\\.|,)+");

正規表現では特殊文字であるため、ドットをエスケープする必要があります。

+0

男!私は約2日からこれを実装しようとしていましたが、これ以上の結果は得られませんでした。完璧。ありがとうたくさん:) – Rahul

+0

それは私が望んでいた正確に結果を与える:) – Rahul

0

あなたがこれを行うことができます:

String str = "..."; 
List<String> List = Arrays.asList(str.split(",")); 

を基本的に.split()メソッドは(に応じて文字列を分割しますこの場合は)区切り文字を渡し、文字列の配列を返します。

しかし、配列ではなく文字列のリストの後にあるように見えるので、配列はArrays.asList()ユーティリティを使用してリストに変換する必要があります。同じようにFYIあなたもそうのような何かができる:

String str = "..."; 
ArrayList<String> List = Arrays.asList(str.split(",")); 
0

使用すると、このような文字をエスケープ:

input.useDelimiter("\\."); 
関連する問題