Hoy me he puesto a intentar hacer una cutre aplicación para Android (que está tan de moda) y de paso a programar mis primeras líneas en JAVA. ¿Quén inventó ese lenguaje del diablo? Se merece las 7 plagas seguidas de una lapidación pública, y voy a ello con un ejemplo muy simple.
Vamos a intentar partir una cadena de texto por espacios, en Python:
>>> a="esto es una cadena de texto" >>> a.split() ['esto', 'es', 'una', 'cadena', 'de', 'texto']
Nótese que entre alguna de las palabras hay más de un espacio.
Ahora vamos a hacerlo en JAVA:
public class test {
public static void main(String args[]) {
String a;
String [] aArray;
int i;
a="esto es una cadena de texto";
aArray=a.split(" ");
for (i=0; i<aArray.length; i++) {
System.out.println("index=" + i + " aArray=" + aArray[i]);
}
}
}
Que como resultado da:
index=0 aArray=esto index=1 aArray= index=2 aArray= index=3 aArray=es index=4 aArray=una index=5 aArray=cadena index=6 aArray= index=7 aArray= index=8 aArray=de index=9 aArray=texto
No quiero ir de listillo, pero necesitar 6 veces más código para no hacerlo bien es como volver al esamblador. He intentado hacer aArray=a.trim().split(" ") pero ni con esas...seguro que hay una forma rebuscada de hacerlo, en python no hay que pensar tanto. Además es bastante más lento que python y eso que se ejecuta compilado en bytecode:
$ time python -c "a='esto es una cadena de texto'; print a.split()" >/dev/null real 0m0.026s user 0m0.020s sys 0m0.004s
$ time java test > /dev/null real 0m0.135s user 0m0.064s sys 0m0.016s