Problem ze spacją w parsowaniu piku CSV używając Scannera

0

Cześć
Odczytuje dane z pliku CSV używająć Scannera ale w przypadku gdy mam tabeli wyrazy oddzielone spacją to odczytuje mi to jako nową linie. Próbowałem użyć useDelimiter ale wtedy szczytuje mi w pętli tylko pierwszy wiersz

 try {
            Scanner inputStream = new Scanner(new File("name.csv"));
            inputStream.useDelimiter(COMMA_DELIMITER);
            inputStream.nextLine();


            while(inputStream.hasNext()){

                 String data = inputStream.next();

                 String[] values =  data.split(",");
2

szczytuje mi w pętli

Erotic asphyxiation ? :D

No i to chyba bez sensu trochę skoro ustawiasz , jako delimiter a potem jeszcze splitujesz po przecinku. Możesz pokazać przykład jak te twoje dane wyglądają? Bo trochę sie to nie trzyma kupy.

List<String> result = new Scanner("ala ma kota,sierotka ma rysia,co ci przeszkadza spacja?")
    .useDelimiter(",")
    .tokens()
    .collect(Collectors.toList());
1

Ogólnie rzecz biorąc do parsowania CSV lepiej byłoby użyć jakiejś biblioteki. Przerabiałem to lata temu w .NET. Ten format nie jest wcale taki prosty, jak się wydaje - wspiera znaki ucieczkowe, są rozmaite przypadki brzegowe. Naiwne splitowanie po przecinku to jest proszenie się o kopoty.

1

Ja jeszcze proponuje nie używac scannera i klasy File tylko wykorzystać Files.lines(Path path)
Path > File

1 użytkowników online, w tym zalogowanych: 0, gości: 1