Ayuda con el Método SPLIT() de java

El problema esta en que me lo separa por caracteres y no por el separador que le doy
package LE;
import java.io.*;
public class LE {
    /**
     * @param args
     */
    public static void main(String[] args) {
        /**
         * Leemos de fichero
         */
        String sFichero = "f1.txt";
        File fichero = new File(sFichero);
        String[] pilotos=new String[24];
        String[][] datos=new String[24][22];
        try {
            FileReader fr = new FileReader("f1.txt");
            BufferedReader bf = new BufferedReader(fr);
            String sCadena;
            int i=0;
            while ((sCadena = bf.readLine()) != null) {
                pilotos=sCadena;
                System.out.println(pilotos=sCadena);
                i++;
            }
        } catch (FileNotFoundException fnfe) {
            fnfe.printStackTrace();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }
        //for(int j=0;j<24;j++)
            //for(int k=0;k<22;k++)
            String[]  ij = pilotos[0].split("|");
        for(int j=0;j<24;j++){
            //for(int k=0;k<22;k++)
                System.out.print(ij[j]);
            System.out.print("\n");
        }
        /**
         * Escribimos de fichero
         */
        /*if (fichero.exists())
            System.out.println("El fichero " + sFichero + " ya existe");
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero));
            // Escribimos 10 filas
            for (int x = 0; x < 10; x++)
                bw.write("Fila numero " + x + "\n");
            // Hay que cerrar el fichero
            bw.close();
        } catch (IOException ioe) {
            ioe.printStackTrace();
        }*/
    }
}
Fernando Alonso|fernandoalonso|25|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|25//
Felipe Massa|felipemassa|18|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|18//
Lewis Hamilton|lewishamilton|15|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|15//
Sebastian Vettel|sebastianvettel|12|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|12//
Nico Rosberg|nicorosberg|10|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|10//
Michael Schumacher|michaelschumacher|8|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|8//
Jenson Button|jensonbutton|6|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|6//
Mark Webber|markwebber|4|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|4//
Vitantonio Liuzzi|vitantonioliuzzi|2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|2//
Rubens Barrichello|rubensbarrichello|1|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|1//
Nico Hulkenberg|nicohulkenberg|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Vitaly Petrov|vitalypetrov|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Robert Kubica|robertkubica|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Adrian Sutil|adriansutil|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Jaime Alguersuari|jaimealguersuari|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Sebastien Buemi|sebastienbuemi|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Jarno Trulli|jarnotrulli|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Heikki Kovalainen|heikkikovalainen|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Karun Chandhok|karunchandhok|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Bruno Senna|brunosenna|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Pedro De la Rosa|pedrodelarosa|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Kamui Kobayashi|kamuikobayashi|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Timo Glock|timoglock|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
Lucas Di Grassi|lucasdigrassi|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0//
F
e
r
n
a
n
d
o
A
l
o
n
s
o
|
f
e
r
n
a
n
d

1 respuesta

1
Respuesta de
Creo que estas podrian ser unas modificaciones del codigo
package LE; 
import java.io.*; 
public class LE { 
    public static void main(String[] args) { 
        String sFichero = "f1.txt"; 
        File fichero = new File(sFichero); 
        String[] pilotos=new String[24]; 
        String[][] datos=new String[24][22]; 
        try { 
            FileReader fr = new FileReader("f1.txt"); 
            BufferedReader bf = new BufferedReader(fr); 
            String sCadena; 
            int i=0; 
            while ((bf.readLine()) != null) { 
                pilotos=sCadena; 
                System.out.println(sCadena); 
                i++; 
            } 
        } catch (FileNotFoundException fnfe) { 
            fnfe.printStackTrace(); 
        } catch (IOException ioe) { 
            ioe.printStackTrace(); 
        } 
        

       for(int j=0;j<24;j++) {
           String[]  ij = pilotos.split("\\"); 
        for(int j1=0;j1<ij.lengt();j1++){ 
            //for(int k=0;k<22;k++) 
                System.out.print(ij[j]); 
            System.out.print("\n"); 
        } 

       }
        /** 
         * Escribimos de fichero 
         */ 
        /*if (fichero.exists()) 
            System.out.println("El fichero " + sFichero + " ya existe"); 
        try { 
            BufferedWriter bw = new BufferedWriter(new FileWriter(sFichero)); 
            // Escribimos 10 filas 
            for (int x = 0; x < 10; x++) 
                bw.write("Fila numero " + x + "\n"); 
            // Hay que cerrar el fichero 
            bw.close(); 
        } catch (IOException ioe) { 
            ioe.printStackTrace(); 
        }*/ 
    } 
}

La idea principal esta bien tu problema creo que es el carácter que mandas a separar ya que para separar por \ tienes que establecer ya que la primera solo indica una secuencia de escape \\ y lo segundo es que ij no va a medir 24 si no que va a medir lo que separe la función split y este se modifica por cada ciclo por lo cual tienes que mandar a imprimir eso de una vez, espero que sirva ya que no lo he probado pero cualquier duda solo dímela y ya la probare para enviarte algo más seguro.
Añade un comentario a esta respuesta
Añade tu respuesta
Haz clic para o
Escribe tu mensaje