ホームページ  >  記事  >  Java  >  JavaのScanner()でCSVファイルを読み取るときにスペースを正しく処理する方法は?

JavaのScanner()でCSVファイルを読み取るときにスペースを正しく処理する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-25 16:36:26852ブラウズ

How to Handle Spaces Correctly When Reading CSV Files with Scanner() in Java?

Scanner() で CSV を読み取る

Java の Scanner クラスを使用して CSV ファイルを読み取る場合、スペースを正しく処理することが重要です。ここで説明する、スペースを含むテキストが次の行に移動される問題は、スキャナーのデフォルトの動作から発生します。

期待される動作:

CSV ファイルにはフィールドが含まれることがよくあります。住所などのスペースを含む。解析されるとき、スペースが含まれている場合でも、各フィールドは単一の単位としてキャプチャされる必要があります。

実際の動作:

デフォルトでは、スキャナは区切り文字として空白を使用します。つまり、スペースをフィールド区切り文字として解釈します。その結果、スペースを含むテキストは複数のフィールドに分割され、別々の行に配置されます。

解決策:

この問題を解決するには、Scanner の useDelimiter メソッドを使用できます。別の区切り文字を指定します。 CSV ファイルは通常、フィールド区切り文字としてカンマを使用するため、次のコードを使用できます:

<code class="java">Scanner inputStream = new Scanner(file).useDelimiter(",");</code>

これにより、Scanner にカンマをフィールド区切り文字として扱うように指示し、スペースを含むフィールドの整合性が維持されます。

例:

この修正されたコードを使用すると、質問で提供された CSV データは次のように解析されます:

first,last,email,address 1, address 2
john,smith,[email&#160;protected],123 St. Street,
Jane,Smith,[email&#160;protected],4455 Roger Cir,apt 2

各フィールド (スペースを含むフィールドも含む) 、単一のユニットとしてキャプチャされ、目的の出力が得られます。

以上がJavaのScanner()でCSVファイルを読み取るときにスペースを正しく処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。