Obtengo NumberFormatException
cuando intento analizar 265,858 con Integer.parseInt()
.Cómo analizar cadenas numéricas que contienen comas en un entero en java?
¿Hay alguna forma de analizarlo en un número entero?
Obtengo NumberFormatException
cuando intento analizar 265,858 con Integer.parseInt()
.Cómo analizar cadenas numéricas que contienen comas en un entero en java?
¿Hay alguna forma de analizarlo en un número entero?
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.
"analizar en un número entero" más o menos angosta la interpretación :) –
Tercera opción: es un separador de agrupación. –
Sí: un número entero, separador de miles. –
Una opción sería la de despojar a las comas:
"265,858".replaceAll(",","");
Solución más simple y más rápida: 'replace' en lugar de' replaceAll'. –
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)));
Puede eliminar el ,
antes de analizarlo en un int:
int i = Integer.parseInt(myNumberString.replaceAll(",", ""));
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);
O puede usar NumberFormat.parse
, configurándolo solo en números enteros.
http://docs.oracle.com/javase/1.4.2/docs/api/java/text/NumberFormat.html#parse(java.lang.String)
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
}
la pregunta no es clara, ¿qué es ','? ¿delimitador decimal o miles? –
Creo que es ... ¿Hay alguna forma de analizarlo en un entero ** ** **? – SiB
o son 2 enteros en formato csv? 265 y 858? –