2012-01-08 9 views

Respuesta

8

Bueno, usted podría utilizar el operador condicional en su lugar:

return StringUtils.isNotBlank(myString) ? Integer.parseInt(myString) : 0; 

Si necesita hacer esto en varios lugares, lo que probablemente quiere poner esto en un método separado. Tenga en cuenta que también debe considerar las situaciones donde myString es nulo o contiene texto no numérico.

0

Sí. (Valide sus entradas antes de hacer suposiciones sobre lo que hay en ellas. :-)

+1 por encontrar el lenguaje común de Apache w/StringUtils.

0

Integer.parseInt(String) no acepta entradas no numéricas, incluidos valores nulos y cadenas vacías.

O haga guardia contra eso como sugirió, o atrape el NFE.

22

Sí, pero: lo envuelve en un método delgada (y eliminar la redundancia else), o utilizar una aplicación existente, como Commons Lang's NumberUtils.toInt(str, defaultValue):

NumberUtils.toInt(myString, 0); 

Este método se encarga null valores y errores de conversión.

1

Lo que tienes está bien, pero como un estilo de codificación que prefiere hacer las pruebas de "positiva" (isBlank), en lugar de "negativa" (isNotBlank), es decir

if (StringUtils.isBlank(myString)) { 
    return 0; 
} 
return Integer.parseInt(myString); // Note: No need for else when the if returns 

o, más brevemente:

return StringUtils.isBlank(myString) ? 0 : Integer.parseInt(myString); 
0

no sé por qué estaba buscando esto, pero aquí está la manera fácil:

int test=str.isEmpty()?0:Integer.parseInt(str); 
2

Si la cadena puede estar vacía lo hago de esta manera:

Integer.parseInt("0" + inputString) 

Cuando no estoy seguro de que contiene sólo dígitos:

Integer.parseInt(0 + inputString.replaceAll("\\D+","")) 
+0

que podría ser un novato, pero ¿por qué es esto no upvoted en absoluto , un truco tan simple. Actualización, acaba de darse cuenta por qué, falla por valores negativos! –

+0

Esta manera complicada solo funciona para un entero sin signo (número positivo) – NPE

+0

Correcto. Para el caso general, usaría una biblioteca de terceros * Utils (ver otras respuestas) –

Cuestiones relacionadas