Maison > Java > javaDidacticiel > le corps du texte

Comment gérer correctement les espaces lors de la lecture de fichiers CSV avec Scanner() en Java ?

Barbara Streisand
Libérer: 2024-10-25 16:36:26
original
858 Les gens l'ont consulté

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

Lire CSV avec Scanner()

Lors de la lecture de fichiers CSV à l'aide de la classe Scanner de Java, il est crucial de gérer correctement les espaces. Le problème décrit ici, où le texte avec des espaces est déplacé vers la ligne suivante, provient du comportement par défaut du Scanner.

Comportement attendu :

Les fichiers CSV contiennent souvent des champs. avec des espaces, comme des adresses. Une fois analysé, chaque champ doit être capturé comme une seule unité, même s'il contient des espaces.

Comportement réel :

Par défaut, le scanner utilise les espaces comme délimiteur, ce qui signifie qu'il interprète les espaces comme des séparateurs de champs. Par conséquent, tout texte comportant des espaces est divisé en plusieurs champs et placé sur des lignes distinctes.

Solution :

Pour résoudre ce problème, vous pouvez utiliser la méthode useDelimiter de Scanner pour spécifier un délimiteur différent. Étant donné que les fichiers CSV utilisent généralement des virgules comme séparateurs de champs, vous pouvez utiliser le code suivant :

<code class="java">Scanner inputStream = new Scanner(file).useDelimiter(",");</code>
Copier après la connexion

Cela demandera à Scanner de traiter les virgules comme séparateurs de champs, préservant ainsi l'intégrité des champs avec des espaces.

Exemple :

En utilisant ce code corrigé, les données CSV fournies dans la question seront analysées comme suit :

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
Copier après la connexion

Chaque champ, y compris ceux avec des espaces , sera capturé comme une seule unité, ce qui donnera le résultat souhaité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!