ヘッダー付きのcsvファイルをJavaのHashMap <String、Double>にストリーミングするにはどうすればよいですか?

user3243499

次のようなサンプルのcsvファイルがあります(参照用のダミーのcsvファイル構造)。

Col0, Col1, Col2, Col3, Col4, Col5
str1, str2, str3, str4, str5, 45.545
str1, str2, str3, str4, str5, 45.545
str1, str2, str3, str4, str5, 45.545
str1, str2, str3, str4, str5, 45.545
str1, str2, str3, str4, str5, 45.545

このcsvファイルをHashMap<String, Double>、キーがとして生成される場所に読み込もうとしています(Col1 + "|" + Col2 + "|" + Col3 + "|" + Col4 + "|" + Col0) and value as Col5

私はここで同様の記事(Java 8ストリームを使用してcsvをマップに変換する方法)に従っていますが、Col5をdoubleに変換するときに次のようにエラーが発生します:

java.lang.NumberFormatException:空の文字列

以下は私が現在使用しているコードです:

    private void convertCsvtoMap(final String filePath) {
        try {
            Stream<String> lines = Files.lines(Paths.get(filePath));
            Map<String, Double> resMap = lines.skip(1).map(line -> line.split(",")).collect(
                    Collectors.toMap(line -> (line[1] +  "|" + line[2] +  "|" + line[3] + "|" + line[4] + "|" + line[0]), line -> Double.parseDouble(line[5])));


        } catch (IOException e) {
            e.getLocalizedMessage();
        }
    }
user2004685

私はあなたに完全な解決策を与えるつもりはありませんが、ここにこの問題に取り組む方法があります、

手順:

  • ファイルの読み取り(スキャナーを使用しています)。
  • ,区切り文字を使用して行を分割します。
  • 分割された値を使用してキー作成します。
  • それをマップに追加します。

コードスニペット:

private void convertCsvtoMap(final String filePath) {
    try (Scanner in = new Scanner(new File(filePath))) {
        String line = null;
        Map<String, Double> resMap = new HashMap<>();
        while (in.hasNextLine()) {
            line = in.readLine();
            String[] fields = line.split(",");
            String key = fields[0].trim() + "|" + fields[1].trim() + ...;
            double value = Double.parseDouble(fields[5].trim());
            resMap.put(key, value);
        }
    } catch (Exception ex) {
        /* Handle Exception */
    }
}

注:コードをコンパイルしていないため、構文にいくつか問題がある可能性があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タグ付きのイメージ名のdockerレジストリapiにmap [string] [] stringを作成するにはどうすればよいですか?

分類Dev

double-forループでリストに1回追加するにはどうすればよいですか?

分類Dev

Elixirのファイルにストリーミングするにはどうすればよいですか?

分類Dev

List <string>を作成せずに画像ソースをパスのリストにバインドするにはどうすればよいですか?

分類Dev

ターミナルのPowerShellスクリプトにパラメーターとしてhere-stringを渡すにはどうすればよいですか?

分類Dev

ブーストシリアル化で使用するdoubleのラッパーを作成するにはどうすればよいですか?

分類Dev

64ビットアプリケーションのString.GetHashcode()のソースコードを取得するにはどうすればよいですか?

分類Dev

リスト内にHashMap <String、ArrayList <String >>を格納するにはどうすればよいですか?

分類Dev

CSVファイルの文字列であるfloat / double数値をfloat / doubleとしてプログラムに正しくインポートするにはどうすればよいですか?

分類Dev

テキストコントローラーの入力をdoubleとして取得するにはどうすればよいですか?-フラッター

分類Dev

HashMap <String、Pair <Double、Integer >>をDouble値で並べ替えるにはどうすればよいですか?

分類Dev

`String`または` Symbol`のリストから `Enum`を作成するにはどうすればよいですか?

分類Dev

VLCを使用してChromecastにストリーミングするにはどうすればよいですか?

分類Dev

大きなファイル用にHttpClientのストリーミングを正しく構成するにはどうすればよいですか?

分類Dev

CXF WebサービスクライアントでJAXBElement <String>が生成されないようにするにはどうすればよいですか?

分類Dev

ServiceWorkerからビデオをストリーミングするにはどうすればよいですか?

分類Dev

BigQueryから更新をストリーミングするにはどうすればよいですか?

分類Dev

pyaudioでライブストリーミングするにはどうすればよいですか

分類Dev

スペースをトリミングするにはどうすればよいですか?

分類Dev

Google Dataprepでヘッダー付きのファイルをエクスポートするにはどうすればよいですか?

分類Dev

Sparkストリーミングで停止条件を作成するにはどうすればよいですか?

分類Dev

String.format()を使用してJavaでdoubleをフォーマットするにはどうすればよいですか?

分類Dev

DoubleをWidthPropertyにプログラムでバインドするにはどうすればよいですか?

分類Dev

値(リストの要素)に基づいてMap <String、List <String >>からキーを取得するにはどうすればよいですか?

分類Dev

DASHストリーミングを設定するにはどうすればよいですか?

分類Dev

連結ASCIIとstd :: stringのサブストリングを見つけるにはどうすればよいですか?

分類Dev

std :: string用にテンプレートを特殊化するにはどうすればよいですか

分類Dev

テキストファイルからAkkaSource [String]を作成するにはどうすればよいですか?

分類Dev

データをicecastにストリーミングしている場合、オーディオファイルのメタデータヘッダーを作成するにはどうすればよいですか?

Related 関連記事

  1. 1

    タグ付きのイメージ名のdockerレジストリapiにmap [string] [] stringを作成するにはどうすればよいですか?

  2. 2

    double-forループでリストに1回追加するにはどうすればよいですか?

  3. 3

    Elixirのファイルにストリーミングするにはどうすればよいですか?

  4. 4

    List <string>を作成せずに画像ソースをパスのリストにバインドするにはどうすればよいですか?

  5. 5

    ターミナルのPowerShellスクリプトにパラメーターとしてhere-stringを渡すにはどうすればよいですか?

  6. 6

    ブーストシリアル化で使用するdoubleのラッパーを作成するにはどうすればよいですか?

  7. 7

    64ビットアプリケーションのString.GetHashcode()のソースコードを取得するにはどうすればよいですか?

  8. 8

    リスト内にHashMap <String、ArrayList <String >>を格納するにはどうすればよいですか?

  9. 9

    CSVファイルの文字列であるfloat / double数値をfloat / doubleとしてプログラムに正しくインポートするにはどうすればよいですか?

  10. 10

    テキストコントローラーの入力をdoubleとして取得するにはどうすればよいですか?-フラッター

  11. 11

    HashMap <String、Pair <Double、Integer >>をDouble値で並べ替えるにはどうすればよいですか?

  12. 12

    `String`または` Symbol`のリストから `Enum`を作成するにはどうすればよいですか?

  13. 13

    VLCを使用してChromecastにストリーミングするにはどうすればよいですか?

  14. 14

    大きなファイル用にHttpClientのストリーミングを正しく構成するにはどうすればよいですか?

  15. 15

    CXF WebサービスクライアントでJAXBElement <String>が生成されないようにするにはどうすればよいですか?

  16. 16

    ServiceWorkerからビデオをストリーミングするにはどうすればよいですか?

  17. 17

    BigQueryから更新をストリーミングするにはどうすればよいですか?

  18. 18

    pyaudioでライブストリーミングするにはどうすればよいですか

  19. 19

    スペースをトリミングするにはどうすればよいですか?

  20. 20

    Google Dataprepでヘッダー付きのファイルをエクスポートするにはどうすればよいですか?

  21. 21

    Sparkストリーミングで停止条件を作成するにはどうすればよいですか?

  22. 22

    String.format()を使用してJavaでdoubleをフォーマットするにはどうすればよいですか?

  23. 23

    DoubleをWidthPropertyにプログラムでバインドするにはどうすればよいですか?

  24. 24

    値(リストの要素)に基づいてMap <String、List <String >>からキーを取得するにはどうすればよいですか?

  25. 25

    DASHストリーミングを設定するにはどうすればよいですか?

  26. 26

    連結ASCIIとstd :: stringのサブストリングを見つけるにはどうすればよいですか?

  27. 27

    std :: string用にテンプレートを特殊化するにはどうすればよいですか

  28. 28

    テキストファイルからAkkaSource [String]を作成するにはどうすればよいですか?

  29. 29

    データをicecastにストリーミングしている場合、オーディオファイルのメタデータヘッダーを作成するにはどうすればよいですか?

ホットタグ

アーカイブ