Saltar al contenido

como convertir string en entero en la plantilla de Velocity?

Presta atención ya que en este escrito vas a hallar la solución que buscas.Esta crónica fue evaluado por nuestros especialistas para asegurar la calidad y exactitud de nuestro contenido.

Solución:

¡Ajá! Estado allí.

#set($intString = "9")
#set($Integer = 0)
$Integer.parseInt($intString)

Hacer esto usa la velocidad subyacente de Java. La variable $Integer no es más que un objeto Java Integer que luego puede usar para acceder a .parseInt

Editar: El código anterior es para demostración. Por supuesto que hay formas de optimizarlo.

Si tiene algún control sobre el contexto de velocidad, aquí hay una alternativa que alivia la necesidad de establecer una variable en la plantilla de velocidad.

Context velocityContext = new Context();
velocityContext.put(Integer.class.getSimpleName(), Integer.class);

Esto le permite llamar al static métodos de java.lang.Integer en su plantilla usando $Integer.parseInt($value) y no depende de que se haya llamado al #set antes de realizar la conversión de tipo en la plantilla.

el problema con parseInt es que arroja una excepción en caso de que el string no es analizable. En caso de que tenga el NumberTool cargado en su contexto, una solución mejor que parseInt es el siguiente:

#set($intString = "009")
#set($Integer=$numberTool.toNumber($intString).intValue())

#if($Integer)
 ## ok
#else
 ## nok
#end

A veces, NumberTool también se carga como $number.

Sin embargo, un pequeño inconveniente es que NumberTool simplemente analiza el primer número que encuentra e ignora el resto, por lo que “123a” => 123.

Te mostramos las reseñas y valoraciones de los lectores

Si haces scroll puedes encontrar las anotaciones de otros programadores, tú además puedes mostrar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *