tutorial traduccion peliculas descargar app groovy

groovy - traduccion - Cadena maravillosa para int



groovy traduccion (13)

Aquí está la otra manera. Si no te gustan las excepciones.

def strnumber = "100" def intValue = strnumber.isInteger() ? (strnumber as int) : null

Tengo una String que representa un valor entero y me gustaría convertirla en un int . ¿Hay un equivalente maravilloso de Integer.parseInt(String) de Java?


Bueno, Groovy acepta el formulario Java muy bien. Si está preguntando si hay una forma Groovier , hay una manera de ir a Integer .

Ambos se muestran aquí:

String s = "99" assert 99 == Integer.parseInt(s) Integer i = s as Integer assert 99 == i


Como una adición a la respuesta de Don , Groovy no solo agrega un método .toInteger() a String s, sino que también agrega a toBigDecimal() , toBigInteger() , toBoolean() , toCharacter() , toDouble() , toFloat() , toList() , y toLong() .

En la misma línea, groovy también agrega is* equivalentes a todos aquellos que devuelven true si la String en cuestión se puede analizar en el formato en cuestión.

La página GDK relevante está aquí.


Conversión de Groovy Style:

Integer num = ''589'' as Integer

Si tiene parámetro de solicitud:

Integer age = params.int(''age'')


La forma de usar aún debe ser toInteger (), porque no está en desuso.

int value = ''99''.toInteger()

La versión de String está en desuso, pero CharSequence es una interfaz que implementa un String. Por lo tanto, usar una cadena está bien, porque su código seguirá funcionando incluso cuando el método solo funcionará con CharSequence. Lo mismo ocurre con isInteger ()

Vea esta pregunta para referencia: ¿Cómo convertir una cadena a CharSequence?

Comenté, porque la noción de desaprobado en este método me confundió y quiero evitarlo para otras personas.


La forma más sencilla de convertir una cadena en entero en Groovy es como sigue ...

String aa="25" int i= aa.toInteger()

Ahora "i" contiene el valor entero.


No estoy seguro de si se introdujo en versiones recientes de groovy (la respuesta inicial es bastante antigua), pero ahora puedes usar:

def num = mystring?.isInteger() ? mystring.toFloat() : null

o

def num = mystring?.isFloat() ? mystring.toFloat() : null

Recomiendo usar flotantes o incluso dobles en lugar de enteros en el caso si la cadena proporcionada no es confiable.


También puedes hacer importación estática.

import static java.lang.Integer.parseInt as asInteger

y despues de este uso

String s = "99" asInteger(s)


Utilice el método toInteger() para convertir una String en un Integer , por ejemplo

int value = "99".toInteger()

Una alternativa, que evita el uso de un método en desuso (ver más abajo) es

int value = "66" as Integer

Si necesita verificar si la String se puede convertir antes de realizar la conversión, use

String number = "66" if (number.isInteger()) { int value = number as Integer }

Griales

Si estás convirtiendo un parámetro de solicitud en un controlador Grails, hay una manera aún mejor

Integer paramValue = params.int(''paramName'')

Una de las características interesantes de esta técnica es que es segura, es decir, si el parámetro no se puede convertir a un Integer , devuelve un valor nulo en lugar de lanzar una excepción.

Actualización de la Depredación

En versiones recientes de Groovy, uno de los métodos toInteger() ha quedado en desuso. Lo siguiente se toma de org.codehaus.groovy.runtime.StringGroovyMethods en Groovy 2.4.4

/** * Parse a CharSequence into an Integer * * @param self a CharSequence * @return an Integer * @since 1.8.2 */ public static Integer toInteger(CharSequence self) { return Integer.valueOf(self.toString().trim()); } /** * @deprecated Use the CharSequence version * @see #toInteger(CharSequence) */ @Deprecated public static Integer toInteger(String self) { return toInteger((CharSequence) self); }

Puede forzar que se llame a la versión no desaprobada del método usando algo horrible como:

int num = ((CharSequence) "66").toInteger()

Personalmente, prefiero mucho más:

int num = 66 as Integer


Varias formas de hacerlo, esta es mi favorita:

def number = ''123'' as int


Varias maneras de lograr esto. Los ejemplos son los siguientes

a. return "22".toInteger() b. if("22".isInteger()) return "22".toInteger() c. return "22" as Integer() d. return Integer.parseInt("22")

Espero que esto ayude


toInteger() método toInteger() está disponible en groovy, puedes usarlo.


def str = "32" int num = str as Integer