No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Java aplicado

27/29
Recursos

Aportes 23

Preguntas 2

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Si están usando Sublime Text o Atom pueden escribir “pl” y después tabulador y les completará la linea.

System.out.println(line);

Mi aporte: agregué la parte de los agrupadores para manipular los datos de la línea en el match, espero a alguien le sea de utilidad.

public static void main(String[] args) {
      String file = "SoccerScores.csv";
      // 1877-03-05,Wales,Scotland,0,2,Friendly,Wrexham,Wales,FALSE
      Pattern pat = Pattern.
          compile("^(18\\d\\d\\-.*),(.*),(.*),(\\d+),(\\d+),([\\w\\s]+),.*$");
            //Se usa doble diagonal para escaparla del string.
      try{
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        while((line = br.readLine()) != null){
          Matcher matcher = pat.matcher(line);
          if(matcher.find()){
            System.out.println("Fecha: " + matcher.group(1));
            System.out.println(matcher.group(2) + " (" + matcher.group(4)+" - "
                            + matcher.group(5)
                            + ") " + matcher.group(3) );
            System.out.println("Torneo: " + matcher.group(6));
            System.out.println("-------------------------------------------------------------\n");
          }
        }
      }catch(Exception e){
        System.out.println("Error");
      }
  }

En Windows, para ejecutar en consola una clase de Java hay que descargar el JDK: https://www.oracle.com/technetwork/java/javase/downloads/index.html, instalarlo y agregar las variables de entorno:
https://www.abrirllave.com/java/configurar-la-variable-de-entorno-path.php

Me gusto mucho Java, creo que se puede obtener un mayor control sobre lo que hacemos.

es necesario escapar dos veces los operadores ya que es una string sobre string
se necesita compilar el patrón antes de buscar las coincidencias
Las ventajas de usar java contra python y perl en archivos super grandes es el colector de basura para liberar memoria.

Con Pattern de puede hacer la compilación y la comparación al mismo tiempo

Excelente como maneja todo eso.

Llegaré a ese nivel.

Para backend, me pareció excelente perl.

javac regex.java && java regex
Pattern pat = Pattern.compile("^2011\\-.*[zk].*$"); //Debemos escapar el escape para las regex en Java

/*

  • To change this license header, choose License Headers in Project Properties.
  • To change this template file, choose Tools | Templates
  • and open the template in the editor.
    */
    package strings;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;

/**
*

  • @author Sem-6-INGENIERIAINDU
    */
    public class Strings {

    static Logger logger = Logger.getLogger(Strings.class);

    public static void main(String[] args) {

     String cadena = "Hola como estas";
     Pattern pattern = Pattern.compile("/^[\\w\\s]+$/:");
     Matcher matcher = pattern.matcher(cadena);
     while (matcher.find()) {
         System.out.println("Matcher: " + matcher.group());
     }
    

    }

}

JAjaja Venezuela perdió ante Costa Rica en amistoso en Barquisimeto xD 0-2

Interesante

Interesante lo que puede hacer Java y los otros no.

Para limpiar por completo la terminal en gnu/linux utilicen

tput reset

mi ceguera visual , perdón pero sonó gracioso jajjajj, es solo una evidencia de que estaba bastante atento a la clase.

muy bien

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class regex {
public static void main(String[] args) {
String file = “./results.csv”;

    Pattern pat = Pattern.compile("^2011\\-.*[zk].*$");
    try {
        BufferedReader br = new BufferedReader(new FileReader(file));
        String line;
        while((line = br.readLine()) != null) {
            Matcher matcher = pat.matcher(line);
            if(matcher.find()) {
                System.out.println(line);
            }
        }
    } catch (Exception e) {
        System.out.println("nope!");
    }
} 

}

super class

Excelente clase, debemos tener cuidado con la doble barra invertida al momento de establecer clases predefinidas o para escapar caracteres.

import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class Regex {

    public static void main(String[] args) {
        long inicio = System.currentTimeMillis();
        long k = 1000;
        String file = "results.csv";
        int matchers = 0;
        int noMatchers = 0;

        // 1875-03-06,England,Scotland,2,2,Friendly,London,England,FALSE
        Pattern pattern = Pattern.compile("^([\\d]{4})-\\d+-\\d+,(.+),(.+),(\\d+),(\\d+),.*$");

        Path path = Paths.get(file);
        try {
            List<String> list_lines = Files.lines(path).collect(Collectors.toList());
            for (String line : list_lines) {
                Matcher matcher = pattern.matcher(line);
                if (matcher.find()) {
                    String lugar = "";
                    int resultadoUno = Integer.parseInt(matcher.group(4));
                    int resultadoDos = Integer.parseInt(matcher.group(5));
                    if (resultadoUno > resultadoDos) {
                        System.out.print("Local:    ");
                    } else if (resultadoUno < resultadoDos) {
                        System.out.print("Visitante:");
                    } else {
                        System.out.print("Empate:   ");
                    }
                    System.out.println("\t" + lugar + matcher.group(2) + ", " + matcher.group(3) + " => [ " + resultadoUno + " - " + resultadoDos + " ]");
                    matchers++;
                } else {
                    noMatchers++;
                }
            }
            System.out.println("\nSe encontraron coincidencias: " + matchers + " y sin coincidencias: " + noMatchers);

        } catch (Exception e) {
            e.printStackTrace();
        }
        System.err.println("Tiempo: " + (System.currentTimeMillis()- inicio) + " ms");
    }
}

Código de la clase:

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class Regex{
    public static void main(String args[]) {
        String file = "../Curso de Expresiones Regulares/results.csv";
        Pattern pat = Pattern.compile("^2011\\-.*[zk].*$");
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            String line;
            while ((line = br.readLine()) != null) {
                Matcher matcher = pat.matcher(line);
                if (matcher.find()) {
                    System.out.println(line);
                }
            }
            br.close();
        } catch (IOException e) {
            System.out.println("Nope!!: " + e);
        }
    }
}