sto usando una scheda (/ t) come delimitatore e so che ci sono alcuni campi vuoti nei miei dati ad esempio:Java StringTokenizer.nextToken() salta su campi vuoti
one->two->->three
Dove -> è uguale alla scheda . Come puoi vedere, un campo vuoto è ancora circondato da tabulazioni. I dati vengono raccolti utilizzando un ciclo:
while ((strLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strLine, "\t");
String test = st.nextToken();
...
}
Eppure Java ignora questa "stringa vuota" e salta il campo.
C'è un modo per aggirare questo comportamento e forzare java a leggere comunque nei campi vuoti?
Usa 'string.split ("\ t")', invece. –
dai java doc di String tokenizer "StringTokenizer è una classe legacy che viene mantenuta per ragioni di compatibilità anche se il suo uso è sconsigliato nel nuovo codice. Si raccomanda che chiunque cerchi questa funzionalità utilizzi il metodo split di String o java.util.regex pacchetto invece. " – Inquisitive
Solo un avviso che sembra utilizzare 'stringa.split (" \ t ")' non restituirà alcun token vuoto finale alla fine. Se questo è importante, usa 'string.split (" \ t ", -1)'. – Oded