2010-01-18 26 views
8

Es bastante sencillo en java para analizar el número de cadena, es decir, con Integer.parseInt (s) si la cadena en el formato 'n' o '-n', pero desafortunadamente no analiza la cadena en el formato de '+ n'.número Parse con prefijo positivo/negativo de cadena en java

Entonces, ¿cuál es la forma más efectiva/elegante para analizar el número de cadena en Java si contiene prefijo positivo o negativo: '+ n' o '-n'?

Respuesta

10
Integer.parseInt(s.replace("+", "")); 

En verdad hay muchas trampas que utilizan enteros para analizar los números así, en ese entero tiene límites muy específicos de tamaño y formato ("1,000,000.00") no es el análisis de esa manera, pero estoy tomando su pregunta como Integer.parseInt satisface sus necesidades, solo tiene que ocuparse de un + en sus datos.

+0

java.text.NumberFormat es probablemente el analizador que se debe usar, pero aún no resuelve el problema con "+". String.replace(), como se demostró, hace. –

+0

Sí, de hecho, esperaba que hubiera alguna solución basada en analizadores/formateadores incorporados ... –

+0

@Gennady Shumakher, ¿pueden detallar el rango de posibilidades de lo que deben analizar? – Yishai

0

Para su información, esto se ha solucionado en Java 7.

de, Java SE8 for the Really Impatient

Antes de JDK 1.7, ¿cuál fue el resultado del siguiente segmento de código?

double x = Double.parseDouble("+1.0");

int n = Integer.parseInt("+1");

Pat usted mismo en la parte posterior si usted supiera la respuesta: +1.0 siempre ha sido un número de coma flotante válido, pero hasta Java 7, +1 no era un entero válido. Esto ahora se ha corregido para todos los diversos métodos que construyen int, long, short, byte, y BigInteger valores de cadenas. Hay más de ellos que usted puede pensar. Además del análisis sintáctico (Int | Long | Short | Byte), existen métodos de decodificación que funcionan con entradas hexadecimales y octales, y métodos valueOf que producen objetos de envoltura. El constructor BigInteger(String) también se actualiza.

Cuestiones relacionadas