Artículos
Java

String: Cortar cadena por puntos

Creado: 30/Dic/2012 Actualizado: 29/Dic/2014

¡Buenas! Este será el primer ejemplo de un set de 5 ejemplos sobre manipulación de cadenas de caracteres, específicamente, la clase String de Java. En este primer ejemplo vamos a ver cómo cortar cadena por puntos con Java.

A modo de introducción, debemos tener en cuenta que no existe ningún método provisto por la clase String de Java que modifique al String que recibe el mensaje, sino que se retornará un String nuevo con el resultado de la operación.

Para empezar, dada una cadena de caracteres con subcadenas separadas por puntos, les voy a mostrar cómo obtener esas subcadenas.

El ejemplo de cómo cortar cadena por puntos busca que dada la siguiente cadena de caracteres como puede ser

www.lineadecodigo.com

Obtengamos la partes que lo componen y que se separan por puntos:

[www]
[lineadecodigo]
[com]

Para poder lograr esto haremos uso del método split de la clase String de la siguiente forma:

public String[] cortarCadenaPorPuntos(String cadena) {
  return cadena.split("\\.");
}

Cabe aclarar que en el método split se usan Expresiones Regulares, es por esta razón que usamos «\\.», ya que el punto es un carácter especial en las Expresiones regulares y su fin es representar un carácter cualquiera; debido a esto debemos hacer uso de «\\» para indicar que realmente es el carácter punto el que buscamos y ningún otro.

Una vez que tengas el arreglo de subcadenas podéis recorrerlo de las siguientes formas:

Lo podemos recorrer mediante un simple bucle for:

    String [] arreglo = cortarCadenaPorPuntos("www.lineadecodigo.com");
    for(int i = 0; i < arreglo.lentgh; i++) 
        System.out.println(arreglo[i]);

O bien utilizar un b bucle for each.

    String [] arreglo = cortarCadenaPorPuntos("www.lineadecodigo.com");
    for(String s : arreglo) 
        System.out.println(s);

Recuerda que el bucle for each puede ser usado con cualquier instancia de la interfaz Iterable

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
Groovy

Mostrar el contenido de un fichero con Groovy

Creado: 29/Dic/2012 Actualizado: 27/Ago/2021

Cuando programamos en lenguajes como Java acceder al contenido de un fichero nos obliga a generar streams, filestreams,… un conjunto de artefactos que nos complican la lectura del contenido de un fichero. En cambio, en Groovy, podemos acceder a un fichero y mostrar su contenido de una forma sencilla. Y nuevamente nos apoyaremos en el sistema de closures de Groovy.

Lo primero será obtener la referencia al fichero con un elemento File. Lo bueno de Groovy es que File está en el core y no es necesario importar ninguna librería de ficheros.

new File ("text.txt")

Ahora asociaremos el closure que tratará el fichero. El fichero lo tratará por filas, así que utilizaremos el método .eachLine para asociar el closure.

new File ("text.txt").eachLine listarFichero

En el closure tendremos el iterador el cual alberga el contenido de cada una de las filas. Así, podríamos escribir nuestro closure como:

def listarFichero = { println $it}

Algo realmente sencillo. Por otro lado, si quisieramos añadir el número de fila que estamos tratando podríamos crear una variable fila, la cual iríamos incrementando en cada una de las iteraciones del closure.

def linea = 1
def listarFichero = { println "$linea - $it"; linea++; }

Revisa cualquier código Java que acceda al contenido de un fichero y te darás de la potencia de Groovy.

Artículos
Java

Imprimir una matriz con Java

Creado: 28/Dic/2012 Actualizado: 14/Ene/2025

En uno de los comentarios al artículo que explica cómo cargar una matriz por teclado en Java, nos preguntaban sobre cómo podíamos imprimir una matriz con Java.

Y es que en el artículo sobre cargar una matriz por teclado en Java lo que hacíamos era mostrar la matriz por posiciones. Ahora la idea es imprimirla de una forma más matemática. Algo parecido a:

Definir una matriz en Java

Así que vamos con la tarea de imprimir una matriz con Java. Lo primero será cargar la matriz. No nos vamos a complicar mucho y lo que vamos a hacer es cargarla directamente.

int matriz[][] = new int[3][3];
matriz[0][0] = 2;
matriz[0][1] = 4;
matriz[0][2] = 4;
matriz[1][0] = 6;
matriz[1][1] = 6;
matriz[1][2] = 9;
matriz[2][0] = 8;
matriz[2][1] = 10;
matriz[2][2] = 1;

Recuerda que las matrices en Java son arrays bidimensionales. Es por ello que la definición tienen dos dimensiones.

Imprimir una matriz con Java por consola

Ahora pasaremos a imprimirla. Para ello utilizamos dos estructuras for anidadas. La primera irá incrementando las filas, es decir, el valor de la X y la segunda incrementará por cada fila el valor de las columnas, es decir, la Y.

for (int x=0; x < matriz.length; x++) {
  for (int y=0; y < matriz[x].length; y++) { ... }
}

Vemos que los bucles for van desde la posición 0 hasta el tamaño que tenga la matriz Java. En el caso de las filas, será el tamaño general.

matriz.length;

Y en el caso de cada fila fijamos la dimensión x.

matriz[x].length;

Ahora, por cada fila vamos a imprimir los elementos, pero sin salto de línea. Es decir utilizando un System.out.print:

for (int y=0; y < matriz[x].length; y++) {
    System.out.print (matriz[x][y]);
    if (y!=matriz[x].length-1) System.out.print("\\t");
}

Además hemos añadido, una tabulación, es decir, una separación entre cada posición. La tabulación la aplicaremos detrás de cada número, excepto del último. Es por ello que hacemos la validación:

if (y!=matriz[x].length-1) System.out.print("\\t");

Recuerda que las tabulaciones se consiguen mediante el carácter escapado \\t.

Una vez impresa cada fila, ahora es cuando hay que dar un salto de línea mediante un System.out.print.

for (int x=0; x < matriz.length; x++) {
  for (int y=0; y < matriz[x].length; y++) {
    System.out.print (matriz[x][y]);
    if (y!=matriz[x].length-1) System.out.print("\\t");
  }
}

Ya solo nos quedará meter algún decorador adicional, al gusto, y el código final Java que nos imprimirá la matriz quedará de la siguiente forma:

for (int x=0; x < matriz.length; x++) {
  System.out.print("|");
  for (int y=0; y< matriz[x].length; y++) {
    System.out.print (matriz[x][y]);
    if (y!=matriz[x].length-1) System.out.print("\\t");
  }
  System.out.println("|");
}

Espero que con esto hayas aprendido a cómo puedes imprimir una matriz con Java por consola.

Código Fuente

Descárgate el código fuente de Imprimir una matriz con Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Imprimir una matriz con Java

Ejecuta el Código

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
Groovy

Tamaño de una lista en Groovy

Creado: 27/Dic/2012 Actualizado: 27/Ago/2021

Ya hemos visto lo sencillo que es crear una lista en Groovy y como recorrerla, sobre todo si nos apoyamos en closures. Ahora vamos a ver cómo podemos obtener cierta información de la lista. En este caso vamos a ver cómo obtener el tamaño de una lista en Groovy.

Lo primero será crear la lista:

def lista = ["Victor","Julio","María","Ignacio","Virginia"]

El atributo que nos da la información sobre el tamaño es size sobre la variable que representa a la lista. Así simplemente tendremos que escribir lo siguiente:

println lista.size

Si queremos utilizar la variable dentro de una cadena podemos hacerlo anteponiendo un dólar a la variable que tiene la lista

println "El número de elementos de la lista es $lista.size"

Un código muy corto y sencillo para obtener el tamaño de una lista en Groovy.

Groovy

Definir un mapa con Groovy

Creado: 26/Dic/2012 Actualizado: 27/Ago/2021

Ya vimos lo sencillo que es definír listas en Groovy, ahora vamos a ver que también es muy sencillo definir un mapa. Entendemos que un mapa es un conjunto de elementos clave/valor. Por ejemplo el mapa:

c1 - Victor
c2 - Julio
c3 - Pilar
c4 - Patricia

Para définir un mapa en Groovy añadimos los pares clave/valor entre corchetes. Por otro lado entre la clave y el valor utilizamos dos puntos. La estructura sería la siguiente:

 def mapa = ["clave1":"valor1","clave2":"valor2","clave3":"valor3",…,"claveN":"valorN"]

Así, con los datos de ejemplo que indicamos antes, el mapa en Groovy se definirá de la siguiente forma:

def mapa = ["c1":"Victor","c2":"Julio","c3":"Elena","c4":"Patricia"]

Una vez que tenemos el mapa vamos a ser cómo lo recorremos. Para ello vamos a utilizar los closures. El closure se lo podemos asignar al mapa mediante el método .each

mapa.each imprimirMapa

Lo siguiente que tenemos que saber del closure para el mapa es que el iterado puede acceder a dos valores .key y .value que son los que nos proporcionan el contenido de la clave y el valor en cada iteración. Así definimos el closure para recorrer nuestro mapa de la siguiente forma:

def imprimirMapa = {println "$it.key = $it.value" }

Vemos que es muy sencillo el poder recorrer el contenido del mapa en Groovy con sus closures.

Artículos
Groovy

Lectura por consola en Groovy

Creado: 19/Dic/2012 Actualizado: 20/Ene/2025

Vamos a ver cómo podemos leer caracteres por consola utilizando Groovy. Al igual que en el resto de ejemplos de Groovy nos vamos a apoyar en los closures para poder realizar la lectura por consola. Y es que en este caso vamos a aplicar un objeto closure sobre el elemento System.in, el cual representa la consola.

El método que nos permite asociar el closure al System.in es .withReader

System.in.withReader leerConsola

Ahora pasamos a definir el closure leerConsola. Como todos los closures tendremos un iterado (it) con los datos de iteración. En este caso los datos de iteración es el acceso directo al contenido insertado en la consola. Apoyándonos en el método .readLine() obtendremos el contenido del usuario.

print "Dame un dato"
def texto = it.readLine();

Ya solo nos queda volcar el contenido de lo leído por consola (si es que no queremos hacer otra cosa con ello).

print "La cadena insertada ha sido $texto"

La definición global del closure leerConsola será la siguiente:

def leerConsola = {
	print "Dame un dato"
	def texto = it.readLine();
	print "La cadena insertada ha sido $texto"
}

Como se puede ver en el código, realizar una lectura por consola en Groovy es realmente sencillo gracias a los closures.

Artículos
Java

Calcular el índice de masa corporal con Java

Creado: 18/Dic/2012 Actualizado: 16/Ene/2025

¿Qué es el índice de masa corporal?

En este ejemplo vamos a calcular el índice de masa corporal con Java mediante la fórmula:

 imc= p/(t*t)

Donde:

  • p= peso
  • t= talla o estatura
  • imc = el índice de masa corporal

Cómo calculo el índice de masa corporal con Java

Vamos a definir una clase Java llamada CalculoIMC.java y su método main e importamos la librería javax.swing. Abajo de esta clase definimos otra más y la llamaremos Persona con cuatro atributos: nombre, edad, peso y estatura.

import javax.swing.JOptionPane;

class CalculoIMC{
  public static void main(String[] args) {
    //... falta más código por escribir
  }
}

//aqui esta la clase Persona
class Persona{
//atributos de la clase
  public String nombre;
  public int edad;
  public double peso,talla;
  //...
}

Ahora vamos a definir un método Java para asignar los atributos:

Persona asignar(String n,int e,double p,double t){
  nombre=n;
  edad=e;
  peso=p;
  talla=t;
  return this;
}

El operador this nos sirve para hacer referencia a los propios atributos de la clase Java. No es necesario declarar un tipo de dato.

Una vez hecho, ya podemos escribir el método que calcula el índice de masa corporal con Java

public double imc(){
  return peso/(talla*talla);
}

Cuando se obtiene el resultado se puede hacer una comparativa de acuerdo a una clasificación:

String cad="";
if(imc()&lt;16.00){
  cad="Infrapeso: Delgadez Severa";
}else if(imc()<=16.00 || imc()<=16.99){
  cad="Infrapeso: Delgadez moderada";
}else if(imc()<=17.00 ||imc()<=18.49){
  cad="Infrapeso: Delgadez aceptable";
}else if(imc()<=18.50 || imc()<=24.99){
  cad="Peso Normal";
}else if(imc()<=25.00 || imc()<=29.99){
  cad="Sobrepeso";
}else if(imc()<=30.00 || imc()<=34.99){
  cad="Obeso: Tipo I";
}else if(imc()<=35.00 || imc()=40.00){
  cad="Obeso: Tipo III";
}else{
  cad="no existe clasificacion";
}
  return cad;

Y para mostrar esos resultados usamos la clase Java JOptionPane con el método showMessageDialog() en un método llamado verDatos()

Persona verDatos(){
  String res="Datos\\n";
  res+="\\nnombre: "+nombre;
  res+="\\nedad: "+edad;
  res+="\\npeso: "+peso;
  res+="\\ntalla: "+talla;
  res+="\\nIMC obtenido es: "+imc();
  res+="\\nClasificacion obtenida es: "+clasificacion();
  JOptionPane.showMessageDialog(null, res,"Resultado",JOptionPane.PLAIN_MESSAGE,new ImageIcon("ferd.jpg"));
  return this;
}
//nota: todo esto dentro de la clase Persona.java

Volvemos a la clase Java principal CalculoIMC:

public static void main(String[] args) {
  //instanciar clase
  Persona persona= new Persona();

  //asignamos los datos de los atributos, para eso usamos JOptionPane.showInputDialog()
  persona.nombre=JOptionPane.showInputDialog("nombre: ");
  persona.edad=Integer.parseInt(JOptionPane.showInputDialog("edad: "));
  persona.peso=Double.parseDouble(JOptionPane.showInputDialog("peso: "));
  persona.talla=Double.parseDouble(JOptionPane.showInputDialog("talla: "));

  // y al final concatenamos los métodos
  persona.asignar(persona.nombre,persona.edad,persona.peso,persona.talla).verDatos();

Al final se visualiza nuestro ejemplo Java todo en una ventanita:

capturajc

Código Fuente

Descárgate el código fuente de Calcular el índice de masa corporal con Java
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Calcular el índice de masa corporal con Java

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
Groovy

Paso de argumentos en Groovy

Creado: 17/Dic/2012 Actualizado: 27/Ago/2021

Al igual que Java, en Groovy puedes introducir valores al ejecutar tu programa. Esto se conoce como paso de parámetros.

Vamos a ver en un ejemplo cómo pasar un único valor a un script. Tenemos el siguiente código:

if(args){
  println "Hola "+args[0]
} else{
  println "no introduciste nada"
}

Vemos que solo accedemos a la posición 0 del array de argumentos o args. Esto significa que solo recuperaremos el valor que se encuentre en dicha posición.

Compilamos:

groovyc miScript.groovy 

Ejecutamos:

groovy miScript.groovy Enrique

El parámetro que le enviamos («Enrique») por default es de tipo String.

Ahora si queremos enviar más de un parámetro necesitamos hacerlo mediante el uso del método each(). En each ejecutaremos un closure y el iterador del closure será el que contenga todos los valores que hayan venido como parámetros al programa.

if(args){
  args.each(){ it->
    println "Hola $it"
  }  
}else{
   println "no introduciste nada"
}
groovy miScript.groovy Enrique Magda Camila Juan

el resultado será:

Hola Enrique 
Hola Magda 
Hola Camila 
Hola Juan
Artículos
HTML

Vídeo sobre DOCTYPE y el validador de la W3C

Creado: 16/Dic/2012 Actualizado: 29/May/2015

Vídeo sobre que nos ayuda conocer los diferentes tipos de documentos HTML que se pueden crear así como sus DOCTYPE asociados. Aprende a utilizar el validador de la W3C para chequear el contenido de tus ficheros HTML.

Puedes ver el vídeo en YouTube.

Vídeos sobre HTML

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

Test HTML

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

Test HTML
Groovy

Obtener la fecha de hoy con Groovy

Creado: Actualizado: 27/Ago/2021

Cuando estamos creando un programa en Java y queremos obtener la fecha de hoy lo primero que tenemos que hacer es importar la clase java.util.Date. Una ve hecho esta importación hay que crear una instancia del elemento Date para acabar volcandolo en pantalla.

En Java obtener la fecha de hoy sería de la siguiente forma:

import java.util.Date;

public class ImprimirFecha {

	public static void main(String[] args) {

		Date fecha = new Date();
		System.out.println(fecha);
	}

}

Ahora vamos a ver lo sencillo que es hacerlo en Groovy y esto es debido a que la clase Date está directamente en el core del lenguaje. Así que solo tenemos que asignarle el valor de la case Date a una variable.

hoy = new Date()

Ya solo tendremos que mostrarla por pantalla:

println hoy

Ya veis que es realmente sencillo obtener la fecha de hoy con Groovy.