Heim > Java > javaLernprogramm > Hauptteil

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

Barbara Streisand
Freigeben: 2024-10-25 16:36:26
Original
946 Leute haben es durchsucht

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage