Foros del Web » Programación para mayores de 30 ;) » Java »

No sé manejar Split()

Estas en el tema de No sé manejar Split() en el foro de Java en Foros del Web. El problema es la introducción de datos desde un fichero de texto plano. El fichero si contiene un # es un comentario y el resto ...
  #1 (permalink)  
Antiguo 13/12/2005, 06:03
 
Fecha de Ingreso: diciembre-2005
Mensajes: 1
Antigüedad: 18 años, 4 meses
Puntos: 0
No sé manejar Split()

El problema es la introducción de datos desde un fichero de texto plano.

El fichero si contiene un # es un comentario y el resto de la línea no la "lee" o se la salta.

El resto del fichero es una matriz de 9x9 (números y "*") que pueden contener espacios en blanco entre ellos, o no contenerlos.
Que puede contener otro caráter que no sean los anteriores y crear un error.

Si todos es correcto con los números según su posición crear un array para poder realizar comprobaciones con ellos.

El fichero txt puede ser por ejemplo este sin error:

# --------------------
# (facil)
# --------------------


7 1 3 8 * * * * *
4 * 2 * 1 * * * *
* * * * * * 3 2 *
* * * * * * 1 * 5
8 7 4 * 2 * * * *
6 5 * 7 * * * * 2
* * * 6 3 * 7 4 *
* 8 * 1 * * * 9 *
* * 6 * 7 * * * 3

Uno con error:

#-------------------
# erroneo
# Le sobra un digito
# a una linea
#-------------------


* * * * 5 * * 2 * 6
* * 3 * 9 * 8 * *
* 4 * * * 7 * * 9
* * 1 5 2 * * * *
9 * * 3 * 8 * * 4
* * * * 7 6 3 * *
1 * * 2 * * * 6 *
* * 5 * 3 * 2 * *
* 7 * * 8 * * * *

#----------------

Me estoy peleando con Split() y con Tokens pero con mi falta de experiencia en java no consigo avanzar.
Agradecería ayuda...

Paso mi código con el que he conseguido leer el archivo de texto que paso como argumento del programa


import java.util.*;
import java.io.*;
import java.lang.String;

public class LectorLinea1
{
public static void main(String[] args)
throws FileNotFoundException,IOException
{
StringTokenizer wordStream;

FileReader fichero;
BufferedReader lector;
String cadena;
// Apertura del fichero (modo lectura)

fichero = new FileReader(args[0]);

// ... con buffer para leer linea a linea

lector = new BufferedReader(fichero);

// Lectura del fichero linea a linea

cadena = lector.readLine();

while (cadena!=null) {

//cadena es un string que representa a una linea del fichero
int posicionComentario = cadena.indexOf('#'); // buscar #
if (posicionComentario != -1)
cadena = cadena.substring(0,posicionComentario); // se elimina lo que va detras
cadena = cadena.trim(); // eliminar espacios sobrantes

//lo he intentado con split pero nada :(((
//String MiCadena = cadena.toString();
//String [] cadena1 = MiCadena.split(" ");

//Lo intento con Tokens nada :(((

wordStream=new StringTokenizer(cadena," ");

while (wordStream.hasMoreTokens())
{System.out.print("Token: " + wordStream.nextToken());
}


System.out.println(cadena);

cadena = lector.readLine();

}

// cierre del fichero

lector.close();
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:30.