Artículos
Java

Validar si un dato es numérico con Patrones en Java

31/Mar/2009

En el artículo Validar si un dato es numérico en Java veíamos como de una forma muy sencilla y mediante la transformación de cadenas en enteros podíamos validar si un dato es numérico en Java.

Si bien, ese ejemplo, válido para aprender a programar con Java, se nos quedaría corto para ejemplos reales.

Una buena forma, como han apuntado algunos de nuestros visitantes, es utilizar patrones sobre las cadenas de texto.

Lo primero que vamos a definir es el patrón que detecte que una cadena sea un número. Para ello indicaremos que la cadena tenga dígitos y que estos puedan aparecer N veces.

De esta manera nuestro patrón sería el siguiente:

[0-9]*

Otra forma de representar un dígito es \d. Por lo tanto nuestro patrón sería

\\d*

Hay que tener cuidado y escapar la barra invertida. Para ello la duplicamos la barra invertida.

Ahora deberemos ejecutar el patrón sobre la cadena. La gestión de patrones y expresiones regulares en Java se realiza mediante la librería java.util.regex y sus clases Matcher y Pattern. Aunque también tenemos el método .matches(), el cual se puede ejecutar sobre una String.

Esto último será lo que hagamos para ejecutar el patrón:

String cadenaUno = "1234";
		
if (cadenaUno.matches("[0-9]*"))
  System.out.println("Es un número");
else
  System.out.println("No es un número");

O con el otro patrón:

String cadenaUno = "1234";
		
if (cadenaUno.matches("\\d*"))
  System.out.println("Es un número");
else
  System.out.println("No es un número");

Podéis probar a cambiar el contenido del String para probar los diferentes comportamientos.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Ordenar un Vector de forma alfabética con Java

25/Mar/2009

El otro día veíamos cómo ordenar un vector de string con Java. Si bien, teníamos como limitante que el método sort de Collections realizaba una ordenación atendiendo a los caracteres ASCII.

Mediante este ejemplo veremos cómo ordenar un Vector de forma alfabética con Java. Para ello nos aprovecharemos de que el método sort tiene dos formas de llamarse.

En la primera, y ya utilizada, se le pasa la lista que contiene los elementos a ordenar:

public static > void sort(List list)

En la segunda, a parte de la lista de elementos, se le puede pasar una clase que sepa como ordenar dichos elementos y que por lo tanto los ordene a nuestro gusto. Atendiendo a nuestro ejemplo que los ordene de forma alfabética.

public static  void sort(List list, Comparator c)

La clase que tiene la lógica de ordenación será una clase del tipo Comparator. Y es que Comparator es un interface a implementar por la clase que contenga la ordenación.

El interface Comparator define dos métodos. Uno de los cuales es .compare(), el cual recibe dos objetos de la lista y decide cual es mayor de los dos.

Definamos nuestra clase de comparación:

class Comparador implements Comparator {
    public int compare(String s1, String s2) {...}
}

Como estamos ordenando un Vector de String, la clase que le pasamos al Template será String.

Volviendo al método .compare(), este deberá de devolver un valor negativo, cero o positivo. Atendiendo a las siguientes reglas:

  • negativo, si el primer argumento es más pequeño que el segundo.
  • cero, si los dos elementos son iguales.
  • positivo, si el primer elemento es más grande que el segundo.

Como a nosotros nos interesa realizar una ordenación alfabética que no identifique mayúsculas y minúsculas, lo primero que haremos será convertir las dos cadenas a minúsculas mediante el método .toLoweCase().

s1.toLowerCase();

Y posteriormente utilizaremos el método .CompareTo de la clase String, el cual tiene el mismo comportamiento que el definido anteriormente para el método compare().

Así el código nos quedará de la siguiente forma:

class Comparador implements Comparator {
    public int compare(String s1, String s2)
    {        	
		return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
}

Ahora solo nos quedará llamar desde la clase que realiza la ordenación al método sort, pasándolo el Vector y la clase que hace la comparación:

Vector miVector = new Vector();
miVector.add("Victor");
miVector.add("julio");
miVector.add("amaya");			
				
Collections.sort(miVector,new Comparador());

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Java

Ordenar un Vector de String en Java

22/Mar/2009

Dentro de la librería java.util encontramos una serie de métodos que nos ayudan a ordenar las colecciones como vectores,listas,… Para ello nos apoyamos en la clase Collections.

Lo primero que tenemos que hacer para ordenar un Vector de String en Java es crear dicho Vector:

Vector miVector = new Vector();

e insertarle datos mediante el método .add:

miVector.add("Victor");
miVector.add("julio");
miVector.add("amaya");

Ahora utilizaremos la clase Collections y su método sort. Será este método sort el que nos permita ordenar un Vector en Java de forma sencilla.

Collections.sort(miVector);

El Vector pasa como parámetro del método sort. Una vez ejecutada esta sentencia nuestro Vector estará ordenado.

Ahora solo nos queda volcar el contenido por pantalla. Para ello vamos a utilizar un bucle for-each:

for(String sElemento: miVector){
   System.out.println(sElemento);	
}

Hay que tener en cuenta que la ordenación que ejecuta el método sort es en base al valor de los caracteres ASCII. Es por ello que en nuestro contenido:

Victor, julio, amaya

Nos lo devolverá ordenado como:

Victor, amaya, julio

Ya que el valor ASCII de la V mayúscula es 86 y el de la a minúscula es 97. Es por ello que ordenará a las mayúsculas primero.

En próximos artículos veremos como ordenar un Vector de String en Java de forma alfabética.

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
Artículos
Linea de Codigo

Desambiguación sobre la función Replace de JavaScript

12/Mar/2009

Hará mucho tiempo escribí un artículo sobre cómo implementar la función replace de Javascript mediante otras funciones del lenguaje.

El artículo podía llevar a engaño debido a su nombre «Función Replace en JavaScript» y una errata, la cual indicaba que no existía la función replace en JavaScript. Algo erroneo.

Es por ello que he decidido recolocar los artículos quedando los siguientes:

Espero que la aclaración no dé lugar a dudas y disculpar las molestias ocasionadas a nuestros lectores.

Artículos
Javascript

Implementarnos la función replace de JavaScript

Dentro del lenguaje JavaScript existe la función replace para realizar la sustitución de cadenas de textos. Podemos ver un ejemplo en «Función Replace en JavaScript».

En este ejemplo vamos a ver como implementarnos la función replace a partir de otras funciones existentes en el lenguaje JavaScript.

Lo primero que haremos será definirnos el interface de la función

function replace(texto,s1,s2);

En esta función reemplazaríamos sobre el texto las cadenas s1 que encontrásemos por las cadenas s2.

Existen diferentes formas de hacer dicha sustitución. Todas ellas nos las tenemos que codificar. En este caso vamos a utilizar dos funciones: .split() y .join().

La primera lo que hace es, a partir de una cadena, crear un array de cadenas. La división la hace a partir del parámetro recibido.

Así, si tenemos el siguiente código:

texto = "Son tres mil trescientos treinta y tres con nueve";
resulado = texto.split("tres");

Lo que obtendremos será un array de la siguiente forma

['Son ',' mil ','cientos treinta y ','con nueve']

Vemos que son 4 cadenas:

  • ‘Son ‘
  • ‘ mil ‘
  • ‘cientos treinta y ‘
  • ‘con nueve’

Seguidamente utilizamos el método .join. Este método lo que hace es unir un array de cadenas y entre cada cadena mete el texto que se recibe como parámetro. Así conseguimos hacer la sustitución del texto.

texto =['Son ',' mil ','cientos treinta y ','con nueve']
resultado = texto.join("dos");

El resultado será:

"Son dos mil doscientos treinta y dos con nueve";

La función replace quedará de la siguiente forma:

function replace(texto,s1,s2){
	return texto.split(s1).join(s2);
}

Código Fuente

Descárgate el código fuente de Implementarnos la función replace de JavaScript
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Javascript

Disfruta también de nuestros artículos sobre Javascript en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Javascript

¿Te atreves a probar tus habilidades y conocimiento en Javascript con nuestro test?

Test Javascript
Artículos
ASP

Mandar emails con ASPEmail

11/Mar/2009

Quien no quiere tener en su página un apartado que nos permita enviar noticias, textos,… mediante un email. El envío de email desde la páginas es muy sencillo utilizando el componente activo de servidor ASPEMail desarrollado por la empresa Persits Software, Inc.

Para mandar emails con ASPEmail lo primero que debemos de hacer es crear una instancia del objeto ASPEMail. Para ello utilizaremos el método CreateObject, al cual pasaremos el ID del objeto AspEMail.

Set Mail = Server.CreateObject("Persits.MailSender")

Una vez creado el objeto nos aprovecharemos de los métodos que tiene para enviar el mensaje. Lo primero es indicar el servidor SMTP que utilizaremos para enviar el mensaje.

Mail.host = "smtp.miservidor.com"

Después indicaremos la persona la cual recibirá el mensaje. Esto lo realizaremos a través del método AddAddress, el cual recibe como parámetros la dirección de email y el nombre de la persona de destino. Estos valores los vamos a recoger de un formulario, es por ello que utilizaremos el método Request.Form(«to»), el cual recupera el valor del campo «to» del formulario. Posteriormente indicaremos quien es la persona que envia el mensaje, propiedad From.

Mail.AddAddress Request.Form("to")
Mail.From "[email protected]", "Linea de Código"

Para terminar de rellenar el encabezado deberemos de indicar el motivo del mensaje a través de la propiedad Subject.

Mail.Subject = "Mensaje de prueba de Linea de Código"

Lo único que nos quedará es rellenar el cuerpo del mensaje, para ello utilizaremos la propiedad Body.

Mail.Body = "Esto es una prueba del componente AspEMail 4.5"

Una vez conformado todo el mensaje lo enviamos a través del método Send. Después de enviado podemos comprobar si ha ocurrido algún error a través del objeto Error.

If Err <> 0 Then
     Response.Write(Err.Description)
else
     Response.Write("Mensaje enviado satisfactoriamente")
End If
Artículos
ASP

Recuperar datos de un formulario con ASP

08/Mar/2009

Vamos a construir un ejemplo mediante el cual podamos recuperar datos de un formulario con ASP. Posteriormente mostraremos los datos en una la pantalla.

Para ello vamos a crear un formulario que contenga dos campos del tipo input. Uno de los campos será de tipo texto, mientras que el otro campo será del tipo password.

Es muy importante el que demos un nombre a cada uno de los campos mediante el atributo name.



El atributo action del formulario deberá de contener el nombre del la página ASP que va a recoger la información del formulario.



Con lo que respecta al método de envío del formulario, atributo method, puede ser «POST» o «GET». Podemos usar cualquiera de los dos, si bien, dependiendo del método elegido deberemos de recuperar la información del formulario de una forma u otra.

Así, si el método utilizado es POST deberemos de recuperar la información mediante Request.Form(«nombreCampo»), donde el «nombreCampo» es el valor que le hayamos asignado al campo name de los input del formulario.

<%
 texto = Request.Form("texto")
 paswd = Request.Form("password")
%>

En el caso de que el método utilizado sea GET deberemos de recuperar la información mediante Request.QueryString(«nombreCampo»)

La información que hemos recuperado la podemos almacenar en variables, las cuales podemos mostrar por pantalla posteriormente mediante el método Response.Write(variable).

<%
 Response.Write("El valor del texto es " & texto & "
") Response.Write("El valor del password es " & passwd & "
") %>
Artículos
Java

Número mayor y su posición

03/Mar/2009

Este es un problema básico a la hora de trabajar con arrays en Java. La idea es buscar el número más grande del array y la posición que ocupa.

Lo primero es declarar el array de números e inicializarlo con una secuencia cualquiera:

int[] listaNumeros = {1,4,7,8,9,2,7,15,4,6,9,8};

Lo siguiente, declarar dos variables, en las que almacenaremos el número mayor y su posición.

Para empezar asumiremos que el número mayor es el primero y que consecuentemente su posición es la cero (recuerda que los arrays empiezan por la posición 0).

Ahora, recorreremos todo el array. Para ello nos valemos de una estructura repetitiva tipo for y de la propiedad .length del array, la cual nos da el número de elementos que almacena el array.

for (int x=1;x<listaNumeros.length;x++){...}

Por cada elemento del array que recorramos deberemos de preguntar si dicho elemento es mayor que el que tenemos almacenado. Si esto se cumple pondremos este como nuevo número mayor y la variable de iteración del bucle como posición.

if (listaNumeros[x]>iNumeroMayor) {
  iNumeroMayor = listaNumeros[x];
  iPosicion = x;
}

Solo nos quedará mostrar los valores de iNumeroMayor e iPosicion. Simple, sencillo y en pocas líneas.

Código Fuente

Descárgate el código fuente de Número mayor y su posición
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star

Vídeos sobre Java

Disfruta también de nuestros artículos sobre Java en formato vídeo. Aprovecha y suscribete a nuestro canal.

Test Java

¿Te atreves a probar tus habilidades y conocimiento en Java con nuestro test?

Test Java
SVG

Dibujar un rectángulo con SVG

02/Mar/2009

Dibujar un rectángulo con SVG es una cosa bastante fácil ya que el rectangulo es una de las figuras estándar del lenguaje SVG. Para ello necesitaremos utilizar la etiqueta RECT

Los dos primeros atributos importantes para nuestro ejemplo son la altura y ancho del rectangulo. Para ello utilizaremos los atributos de la etiqueta RECT: width y height.

Otra cosa que podemos hacer es la de posicionar el rectangulo dentro del lienzo. Para ello tendremos que definir las coordenadas X,Y del lienzo. El nombre de los atributos es el mismo: X e Y.

Por último vamos a darle color a la cosa. En este caso, utilizaremos el atributo fill, indicándole el color que queremos usar (rojo en este caso):

Aunque podríamos darle el color mediante un estilo y el atributo style:

El código que nos quedaría al final sería algo parecido a lo siguiente: