Heim  >  Artikel  >  Java  >  Wie gehe ich beim Lesen von CSV-Dateien mit Scanner() in Java richtig mit Leerzeichen um?

Wie gehe ich beim Lesen von CSV-Dateien mit Scanner() in Java richtig mit Leerzeichen um?

Barbara Streisand
Barbara StreisandOriginal
2024-10-25 16:36:26852Durchsuche

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

CSV mit Scanner() lesen

Beim Lesen von CSV-Dateien mit der Scanner-Klasse von Java ist es wichtig, Leerzeichen korrekt zu behandeln. Das hier beschriebene Problem, bei dem Text mit Leerzeichen in die nächste Zeile verschoben wird, ergibt sich aus dem Standardverhalten des Scanners.

Erwartetes Verhalten:

CSV-Dateien enthalten häufig Felder mit Leerzeichen, z. B. Adressen. Beim Parsen sollte jedes Feld als einzelne Einheit erfasst werden, auch wenn es Leerzeichen enthält.

Tatsächliches Verhalten:

Standardmäßig verwendet der Scanner Leerzeichen als Trennzeichen. Das bedeutet, dass Leerzeichen als Feldtrennzeichen interpretiert werden. Folglich wird jeder Text mit Leerzeichen in mehrere Felder aufgeteilt und in separaten Zeilen platziert.

Lösung:

Um dieses Problem zu beheben, können Sie die useDelimiter-Methode des Scanners verwenden um ein anderes Trennzeichen anzugeben. Da CSV-Dateien normalerweise Kommas als Feldtrennzeichen verwenden, können Sie den folgenden Code verwenden:

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

Dadurch wird der Scanner angewiesen, Kommas als Feldtrennzeichen zu behandeln, wodurch die Integrität von Feldern mit Leerzeichen gewahrt bleibt.

Beispiel:

Mit diesem korrigierten Code werden die in der Frage bereitgestellten CSV-Daten wie folgt analysiert:

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

Jedes Feld, auch diejenigen mit Leerzeichen , wird als einzelne Einheit erfasst, was zur gewünschten Ausgabe führt.

Das obige ist der detaillierte Inhalt vonWie gehe ich beim Lesen von CSV-Dateien mit Scanner() in Java richtig mit Leerzeichen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn