2012-08-15 26 views

Respuesta

57

Es este un separador coma decimal o son estos dos números? En el primer caso debe proporcionar Locale-NumberFormat clase que utiliza una coma como separador decimal:

NumberFormat.getNumberInstance(Locale.FRANCE).parse("265,858") 

Esto se traduce en 265.858. Pero el uso de entorno local de que obtendrá 265858:

NumberFormat.getNumberInstance(java.util.Locale.US).parse("265,858") 

Eso es porque en Francia tratan coma como separador decimal, mientras que en Estados Unidos - como agrupación (mil) separador.

Si se trata de dos números - String.split() y analiza dos cadenas por separado de forma independiente.

+2

"analizar en un número entero" más o menos angosta la interpretación :) –

+3

Tercera opción: es un separador de agrupación. –

+0

Sí: un número entero, separador de miles. –

2

Una opción sería la de despojar a las comas:

"265,858".replaceAll(",",""); 
+0

Solución más simple y más rápida: 'replace' en lugar de' replaceAll'. –

0

Prueba esto:

String x = "265,858 "; 
    x = x.split(",")[0]; 
    System.out.println(Integer.parseInt(x)); 

EDIT: si quieres que redondea al entero más cercano:

String x = "265,858 "; 
    x = x.replaceAll(",","."); 
    System.out.println(Math.round(Double.parseDouble(x))); 
+0

Eso da '265' – Cratylus

+1

Eso debería dar 265, él no quiere que sea redondeado o lo que sea – SpiXel

+0

Pero el número es' 265858' o '265.858' – Cratylus

15

Puede eliminar el , antes de analizarlo en un int:

int i = Integer.parseInt(myNumberString.replaceAll(",", "")); 
1

El primero que hace clic para mí, suponiendo que esto es un solo número, es ...

String number = "265,858"; 
number.replaceAll(",",""); 
Integer num = Integer.parseInt(number); 
9

Si se trata de un número & que desea eliminar separadores, NumberFormat devolverá un número para usted. Solo asegúrese de usar la configuración regional correcta cuando use el método getNumberInstance.

Por ejemplo, algunas configuraciones regionales cambian la coma y el punto decimal a lo que puede estar acostumbrado.

Luego solo use el método intValue para devolver un número entero. Sin embargo, tendrá que envolver todo en un bloque try/catch para dar cuenta de las excepciones de Parse.

try { 
    NumberFormat ukFormat = NumberFormat.getNumberInstance(Locale.UK); 
    ukFormat.parse("265,858").intValue(); 
} catch(ParseException e) { 
    //Handle exception 
} 
Cuestiones relacionadas