Colaboradores

Mostrando entradas con la etiqueta java. Mostrar todas las entradas
Mostrando entradas con la etiqueta java. Mostrar todas las entradas

miércoles, 22 de junio de 2011

Expresiones regulares en Java

Hola a todos, ya tenía mucho tiempo que no escribía nada en el blog, la mayor parte del tiempo fueron por mis responsabilidades con la escuela, pero hoy vamos a tratar un tema que nos puede servir mucho para realizar validaciones de cadenas, reconocer patrones en las mismas, etc., las posibilidades son varias, así que vamos a empezar con las expresiones regulares.
Una expresión regular, es una expresión que permite describir un conjunto de cadenas sin enumerar sus elementos; estas expresiones nos permiten enumerar conjuntos de cadenas de manera formal y así decidir si una cadena esta dentro del conjunto descrito en la expresión regular.
Por ejemplo, en teoría de la computación (autómatas y lenguajes formales), una expresión regular serían las siguientes: a, aaa, a+, a*; los primeros dos elementos enumerados anteriormente representan conjuntos de una sola 'a' y tres 'a's respectivamente, mientras que la a con el signo "más" representa una o más veces la repetición de la a y con el signo '*' representa cero o más veces.
Otros ejemplos:

  • (ab)*: repeticiones de ab's cero o más veces
  • (azul|morado) busca las cadenas que digan azul o morado
  • ((ab)*(ab)+) todas las cadenas de ab que tengan al menos un par
En java se provee de un motor de búsqueda para cazar con dichas expresiones utilizando dos clases: Pattern  y Matcher. La clase Pattern, es la representación compilada de la expresión regular y la clase Matcher permite crear objetos a partir de Pattern.matcher con la cual se pueden realizar operaciones sobre la cadena de caracteres que queremos validar o en la secuencia de caracteres que queremos buscar.
Ya que di una pequeña explicación sobre las clases que permiten realizar el uso de expresiones regulares, vamos a realizar un pequeño ejemplo:


public class Ejemplo{

public static void main(String args[]){
        if(Pattern.matches("[A-Za-zñÑ]+", "Soy una Piña"))
            System.out.println("True");
        else
            System.out.println("false");
}

}
Una vez que se ha ejecutado este código el resultado va a imprimir en pantalla "True", dado que evalúa la cadena y determina que dentro de dicha cadena, cada uno de sus caracteres, entra en el intervalo dado en la expresión regular.
Una pequeña curiosidad en la expresión regular es el uso después de los corchetes del símbolo "+", este símbolo denota que la cantidad de elementos que caen dentro de la expresión regular debe ser de al menos uno, en cambio, si quisiéramos que el número de caracteres fuera exactamente cero, sustituimos el símbolo "+" por el símbolo "*", que sirve para denotar cero o más veces.
Con esto doy el pequeño ejemplo de las expresiones regulares en Java y en próximos posts escribiré sobre la forma de las expresiones regulares que nos permitirán tener mejores filtros para nuestras cadenas a evaluar.

Saludos.


domingo, 19 de diciembre de 2010

Hola mundo en java

Empiezo a escribir en este blog el cual espero sea uno de los mejores en los tiempos venideros, como el Miguel esta con el rollo de ayudar a los demás en lo de la programada empezaré una serie de posts que mostrarán los aspectos básicos de diversos lenguajes de programación y para no hacer el cuento más largo les dejo el típico hola mundo en java, para verlo funcionar basta escribir este texto en una archivo de texto plano y darle el nombre de HolaMundo.java.


public class HolaMundo{
public static void main(String[] args){
System.out.println("Hola mundo.\n");
}
}

Compilando

Antes de ver nuestra obra maestra en acción es necesario "traducir" este código en "algo" que la máquina pueda entender, para esto abrimos un Terminal o consola y ejecutamos escribimos.


javac HolaMundo.java

Si tu programa sintácticamente es correcto el compilador creará un archivo .class o código objeto que será leído por la máquina virtual para que se ejecute, para ejecutarlo solo tenemos que teclear lo siguiente:


java HolaMundo

Esto generará la salida y obtendremos esto:

Hola mundo.