1

コンマで区切られたレコードがいくつかあります。ファイル内のレコードを分離し、配列に入れる必要があります。私が抱えている問題は、テキストがコンマで区切られていることですが、一部のフィールド内にコンマがあり、それらは区切り記号であってはなりません。

たとえば、次の例のように、フィールドがアドレスを指定している場合:"2, foo , 403 HAPPY LANE Seattle, WA., etc"

以下は、私が使用しているコードの例です。

// Start streams....
String str = null;
    List<String> items = null;

    while((str = bufr.readLine()) != null) {
     items = Arrays.asList(str.replace("\"", "").split("\\s*,\\s*"));
     while(true) {
         System.out.println (items);

私はcsvなどについて知っていますが、使用したくありません。

4

2 に答える 2

0

無視する必要があるカンマが引用符で囲まれている場合は、OpenCSVなどのパッケージを使用できます。引用符で囲まれたコマは無視されます。Apache Commons には、他にもいくつかのリストがあります

ただし、コンマが引用符で囲まれていない場合、コンマが区切り記号であり、そうでないことをコンピューターが認識することは期待できません。

于 2012-11-13T17:46:50.777 に答える
0

これは本当にあなたの状況に依存しますが、これを行うために私が考えることができるいくつかの方法があります.

A) コンマ区切りでパターンを探します。すなわち。値を読み取るデータベースがあります。表示しているテーブルは、姓、名、および住所を含む顧客テーブルです。address に分割したくない余分なコンマが含まれている場合は、3 つおきのコンマを無視する何らかのメソッドを作成できます。

B) 値を区切るすべてのコンマを、データの他の場所には現れない別の特殊文字に置き換え、コンマの代わりにその文字に基づいてデータを分割します。

私が言ったように、それはあなたの状況とあなたが読んでいるデータに本当に依存しています。質問のコンテキストについてもう少し情報を提供すると、より洗練された回答が得られる可能性があります。

于 2012-11-13T17:55:18.347 に答える