Java - Duda ficheros de texto

   
Vista:

Duda ficheros de texto

Publicado por Daniel (6 intervenciones) el 22/12/2015 15:12:09
Buenas. Llevo un tiempo en un curso de programación en Java y hoy intentando hacer un programa me ha surgido una duda que no soy capaz de resolver. Os explico. Tengo un fichero de texto con todos los resultados de la liga, distribuidos así: Local,Visitante,GolesLocal,GolesVisitante. Por ejemplo:

1
2
3
Atleti,Madrid,1,1
Barcelona,Atleti,2,1
Madrid,Barcelona,2,2

Pues bien, mi duda es la siguiente: ¿puedo hacer un recuento de cuántos partidos ha jugado determinado equipo como local, incluyendo goles a favor y en contra? Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Iraldo

Duda ficheros de texto

Publicado por Iraldo (10 intervenciones) el 22/12/2015 17:09:26
Hola Daniel.

Por poder si puedes. No se cómo sera tu código, pero te aconsejo que guardes la información del fichero en variables separadas, y luego juegues con ellas. Utiliza un FileReader y un BufferedReader para leer una línea entera (linea=br.readline ()) y luego la "troceas" con .split ().

Si necesitas más ayuda seria bueno que pusieras algo de código para partir de ahí.

Saludos, espero que te haya servido.

Iraldo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda ficheros de texto

Publicado por Daniel (6 intervenciones) el 22/12/2015 17:17:24
Me explico un poco mejor, pues tengo muy poco código y no creo que sirva de mucho. Mi idea es que el usuario introduzca por teclado un equipo, y el programa calcule los goles a favor de ese equipo en casa, los goles en contra en casa, los goles a favor de visitante y los goles en contra de visitante. Entonces, al ser el usuario el que introduce el equipo, no sé cómo se haría para "buscar" los datos de ese equipo dentro del documento de texto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda ficheros de texto

Publicado por Juan R. (94 intervenciones) el 22/12/2015 19:16:19
Buenas Daniel

Yo esto casi lo veía más cómodo si tuvieras guardados los resultados en una BD, sería posible que los tuvieses mejor allí o simplemente tienen que ser obligatoriamente desde un fichero de texto con esa estructura?

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda ficheros de texto

Publicado por Daniel (6 intervenciones) el 22/12/2015 19:21:15
Lo del fichero de texto es más que nada porque tengo los datos ahí, no es obligatorio. Pero claro, en el curso todavía no hemos llegado a manejar bases de datos y demás, pero documentos de texto sí. Pero si es más fácil con base de datos y me explicáis cómo y así lo aprendo, por mí encantado!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alberto

Duda ficheros de texto

Publicado por Alberto (7 intervenciones) el 22/12/2015 20:07:50
Hola, si segun se aprecia el fichero de texto tiene 4 campos siendo el primero el equipo local.
Para hacer el recuento que necesitas debes iterar sobre el primer campo y para cada coincidencia
con el equipo en cuestion debes contar cuantas veces este aparece e ir sumando sus goles a favor
(tercer campo) y sus goles en contra (cuarto campo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda ficheros de texto

Publicado por Daniel (6 intervenciones) el 22/12/2015 20:32:03
¿Pero cómo hago lo de iterar el primer campo y buscar las coincidencias? Esa es mi duda jajajajajaja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Duda ficheros de texto

Publicado por Thanatos (69 intervenciones) el 23/12/2015 06:49:53
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.util.List;
import java.util.ArrayList;
import java.util.stream.Stream;
import java.util.stream.Collectors;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
 
class Futbol {
 
    public static void main(String[] args) {
        String fichero = "partidos.txt";
        String equipo = "Madrid";
 
        mostrarDatosLocal(fichero, equipo);
    }
 
    private static void mostrarDatosLocal(String fichero, String equipo) {
        List<String> partidos = new ArrayList<String>();
        boolean todoOK = true;
        int gf = 0;
        int gc = 0;
 
        try (Stream<String> stream = Files.lines(Paths.get(fichero))) {
            partidos = stream
                       .filter(line -> line.startsWith(equipo))
                       .collect(Collectors.toList());
        } catch (IOException ioe) {
            todoOK = false;
            System.err.println("\n * Error al leer el fichero *\n");
        }
 
        for (String partido : partidos) {
            try {
                gf += Integer.parseInt(partido.split(",")[2]);
                gc += Integer.parseInt(partido.split(",")[3]);
            } catch (NumberFormatException nfe) {
                todoOK = todoOK && false;
                System.err.println("\n * Error en los datos del fichero *");
            }
        }
 
        if (todoOK) {
            System.out.printf("Local: %s\nGF = %d\nGC = %d\n", equipo, gf, gc);
        }
    }
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Duda ficheros de texto

Publicado por Daniel (6 intervenciones) el 23/12/2015 11:39:05
Funciona perfecto, muchísimas gracias, de verdad . Ahora, a aprenderme el código para saber hacerlo solo jeje
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar