El decodificador obtiene los campos secuencialmente. Para ello mantiene
un cursor que indica el inicio del próximo campo que se debe extraer.
Este cursor se hace avanzar cada vez que se extrae un nuevo campo.
Una vez que se extrajo el último campo, el decodificador no puede ser
reutilizado con otro string.
FieldParser decod= new FieldParser("123:hola que tal::3.14", ":");
int num= decod.readInt(); // num es 123
String s1= decod.readString(); // s1 es "hola que tal"
String s2= decod.readString(); // s2 es ""
double pi= decod.readDouble(); // pi es 3.14
Para leer todos los campos en un string utilice el siguiente código:
o bien:
FieldParser decod= new FieldParser("a:b:c:d", ":");
while (decod.hasMoreFields())
println(decod.readString());
FieldParser decod= new FieldParser("a:b:c:d", ":");
String campo= decod.readString();
while (!decod.eosReached()) {
println(campo);
campo= decod.readString();
}
Para hacer uso de esta clase es necesario incluir al inicio del programa la siguiente línea:
import tools.*;
Construye un decodificador para el string linea, que contiene campos separados por el string delimitador. El cursor se coloca al inicio del string.
Avanza el cursor hasta encontrar un nuevo delimitador o el final del string. Entrega el substring que se encontró entre los dos delimitadores o el final del string (sin incluir los delimitadores).
Lee el próximo campo, que debe corresponder a un número entero y entrega su valor numérico como entero.
Lee el próximo campo, que debe corresponder a un número real y entrega su valor numérico como real.
Si la última lectura (con readString, readInt o readDouble) se hizo más allá del último campo, este método retorna verdadero. Si no retorna falso, incluso cuando se acaba de leer el último campo del string.
Sólo está permitido leer una vez pasado el último campo.
Este método retorna verdadero si todavía falta leer algún campo y falso en caso contrario.