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.