Rumah  >  Artikel  >  Java  >  Bagaimana Mengendalikan Ruang dengan Betul Apabila Membaca Fail CSV dengan Pengimbas () dalam Java?

Bagaimana Mengendalikan Ruang dengan Betul Apabila Membaca Fail CSV dengan Pengimbas () dalam Java?

Barbara Streisand
Barbara Streisandasal
2024-10-25 16:36:26847semak imbas

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

Baca CSV dengan Pengimbas()

Apabila membaca fail CSV menggunakan kelas Pengimbas Java, adalah penting untuk mengendalikan ruang dengan betul. Isu yang diterangkan di sini, apabila teks dengan ruang dialihkan ke baris seterusnya, timbul daripada kelakuan lalai Pengimbas.

Gelagat Jangkaan:

Fail CSV selalunya mengandungi medan dengan ruang, seperti alamat. Apabila dihuraikan, setiap medan hendaklah ditangkap sebagai satu unit, walaupun ia mengandungi ruang.

Gelagat Sebenar:

Secara lalai, Pengimbas menggunakan ruang putih sebagai pembatas, bermakna ia mentafsirkan ruang sebagai pemisah medan. Akibatnya, mana-mana teks dengan ruang akan dibahagikan kepada beberapa medan dan diletakkan pada baris yang berasingan.

Penyelesaian:

Untuk menyelesaikan isu ini, anda boleh menggunakan kaedah useDelimiter Pengimbas untuk menentukan pembatas yang berbeza. Memandangkan fail CSV biasanya menggunakan koma sebagai pemisah medan, anda boleh menggunakan kod berikut:

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

Ini akan mengarahkan Pengimbas untuk menganggap koma sebagai pemisah medan, dengan itu mengekalkan integriti medan dengan ruang.

Contoh:

Menggunakan kod yang diperbetulkan ini, data CSV yang disediakan dalam soalan akan dihuraikan seperti berikut:

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

Setiap medan, termasuk yang mempunyai ruang , akan ditangkap sebagai satu unit, menghasilkan output yang diingini.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Ruang dengan Betul Apabila Membaca Fail CSV dengan Pengimbas () dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn