Używam pliku CSVReader
OpenCSV do odczytywania oddzielonych przecinkami wartości z pliku. Nie wiem, jak przyciąć spacje wiodące i końcowe. Oczywiście, mógłbym zrobić String.trim()
, ale nie byłoby to czystsze. W documentation nie ma określonej takiej opcji.Przycinanie spacji wiodących i końcowych w OpenCSV
6
A
Odpowiedz
1
Czy możesz przełączyć na SuperCSV
? Ma opcję ignorowania otaczających przestrzeni na jego CsvPreference.Builder
. To znacznie lepsza biblioteka, IMO. Jeśli ta preferencja nie spełnia Twoich oczekiwań, zawsze możesz rozszerzyć klasę Tokenizer i zastąpić readColumns
. W przeciwnym razie wygląda na to, że OpenCSV
nie jest bardzo ziarnisty i wymagałoby rozszerzenia CSVReader
i przesłania readNext
. To może działać:
class MyReader extends au.com.bytecode.opencsv.CSVReader {
@Override public String[] readNext() throws IOException {
String[] result = super.readNext();
for (int i=0; i<result.length; i++) result[i] = result[i].trim();
return result;
}
}
0
Korzystanie pomysł ngreen za wymyśliłem następujący roztworu roboczego:
public class CSVReaderExtended extends CSVReader {
private static final String EXP_ALPHA_AND_DIGITS = "[^a-zA-Z0-9]+";
public CSVReaderExtended(Reader reader) {
super(reader);
}
@Override
public String[] readNext() throws IOException {
String[] result = super.readNext();
if (result == null)
return null;
for (int index = 0; index < result.length; index++) {
result[index] = result[index].replaceAll(EXP_ALPHA_AND_DIGITS, "");
}
return result;
}
}
Powiązane problemy
- 1. Przycinanie wiodących/końcowych białych znaków z textarea za pomocą jQuery?
- 2. Przycinanie wiodących przestrzeni, w tym zakładek
- 3. Usuwanie spacji końcowych z gsub w R
- 4. Usuwanie początkowych i końcowych spacji z elementów XML
- 5. Obracanie i przycinanie UIImage
- 6. wykrywanie twarzy i przycinanie
- 7. openCSV nie czyta całego pliku
- 8. Przycinanie wiodącej białej przestrzeni za pomocą PHP?
- 9. Przycinanie AudioQueue i rozmiar bufora
- 10. Swift: przycinanie i eksportowanie wideo
- 11. Łączone obracanie obrazu i przycinanie w jQuery
- 12. Przycinanie `okna` i` dokumentu` w pracownikach WWW
- 13. untabify i usuwanie końcowych białych znaków w emacs
- 14. Przycinanie ciąg w C
- 15. Przycinanie w kamerze
- 16. Lewy przycinanie w JavaScript
- 17. formatowanie napisów, usuwanie znaków wiodących
- 18. Miesiąc bez zer wiodących w systemie Android
- 19. zer wiodących dla pływaka w Swift
- 20. Odczytaj zdalny plik .csv przy użyciu opencsv
- 21. Dodawanie zer wiodących w ciągu znaków
- 22. Zastępowanie wiodących znaków w ciągu znaków
- 23. Usuwanie wielu spacji i spacji za pomocą gsub
- 24. Niespójne użycie kart i spacji w wcięciach
- 25. Zmienianie rozmiaru spinacza i przycinanie do prostokąta
- 26. Kotlin dla androidów i statycznych klas końcowych
- 27. Przycinanie + sanityzacja widoków w szynach
- 28. Drukowanie końcowych zer w QString
- 29. Efektywne przycinanie obrazu w JavaFX
- 30. Inicjowanie końcowych pól w Javie
Jak to nie "czystsze", by użyć 'String.trim()'? – syb0rg
Ponieważ muszę napisać jedną dodatkową linię. Musi również stworzyć cały nowy obiekt, więc nieco mniej wydajny. – user1377000
Nie można oszczędzić ** 1 ** dodatkowej linii w kodzie źródłowym dla funkcji, którą umiesz używać? – syb0rg