NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);Number number = format.parse("1,234");double d = number.doubleValue();
Es cuestión del idioma, en español trabajamos con comas, no con puntos.Este es un ejemplo que he encontrado para alguien que tenía el problema contrarioCódigo: [Seleccionar]NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);Number number = format.parse("1,234");double d = number.doubleValue();Con Locale.UK o US o algo así te debería servir. No me sé las constantes de memoria.
if (nombre.equals("Test")){ ...}
if ("Test".equals(nombre)){ ...}
String s1 = "Test";String s2 = s1;String s3 = new String(s1);"Test" == "Test" //true"Test" == s1 //true"Test" == s2 //trues1 == s2 //true"Test" == s3 //falses1 == s3 //false
En java, usar == con clases solo compara referencias (punteros, vaya).Especifico "con clases", porque con los tipos básicos (int, double, etc), funciona como esperarías.Las cadenas se comparan con equals:Código: [Seleccionar]if (nombre.equals("Test")){ ...}Hay quien recomienda hacerlo al revésCódigo: [Seleccionar]if ("Test".equals(nombre)){ ...}A mí me parece una chorrada, pero bueno.Lo peor de las cadenas de java es que en algunos casos la comparación con == funciona, y eso confunde mucho a los que empiezan.Código: [Seleccionar]String s1 = "Test";String s2 = s1;String s3 = new String(s1);"Test" == "Test" //true"Test" == s1 //true"Test" == s2 //trues1 == s2 //true"Test" == s3 //falses1 == s3 //false
Hay quien recomienda hacerlo al revésCódigo: [Seleccionar]if ("Test".equals(nombre)){ ...}A mí me parece una chorrada, pero bueno.
if(cadena.equals("Test") {...}
String s1 = "hola";String s2 = s1;String s3 = new String(s1);// s1 y s2 se encuentran en el pool de strings. Los dos valores // apuntan al mismo contenido. if(s1 == s2) System.out.println("True");// s3 no por que es un objeto del tipo Stringif(s1 != s3) System.out.println("False");// Para que s3 pase al pool de strings si no existe actualmente se // usa el método intern() String s4 = s3.intern();if(s4 == s1) System.out.println("True");
double val1 = 3.3d;float val2 = 12.1234f;long val3 = 12345l;
Hola, no es ninguna chorrada y te explico el por qué. Si quieres comparar cualquier string con "Test" y haces lo siguiente:
if(cadena != null && cadena.equals("Test") {...}
if("Test".equals(cadena)) {...}