que estoy usando una pestaña (/ t) como delimitador y sé que hay algunos campos vacíos en mis datos, por ejemplo:Java StringTokenizer.nextToken() salta sobre los campos vacíos
one->two->->three
Dónde -> es igual a la pestaña . Como puede ver, un campo vacío sigue rodeado correctamente por pestañas. Los datos se recogen usando un bucle:
while ((strLine = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(strLine, "\t");
String test = st.nextToken();
...
}
Sin embargo, Java ignora esta "cadena vacía" y se salta el campo.
¿Hay alguna manera de eludir este comportamiento y obligar a Java a leer en campos vacíos de todos modos?
Use 'string.split ("\ t")' en lugar. –
de los documentos java de String tokenizer "StringTokenizer es una clase heredada que se conserva por razones de compatibilidad, aunque se desaconseja su uso en el nuevo código. Se recomienda que cualquiera que busque esta funcionalidad utilice el método de división de String o el java.util.regex paquete en su lugar ". – Inquisitive
Solo un aviso de que parece que 'string.split (" \ t ")' no devolverá ningún token vacío al final. Si eso es importante, use 'string.split (" \ t ", -1)'. – Oded