2012-09-18 11 views
7

disculpas si me muevo o hablo un poco de jibberish pero soy nuevo en velocidad, y estos foros!Parte de salida de una cadena en velocidad

Necesito comprobar el contenido de una cadena para un cierto carácter y mostrar la segunda parte del texto si aparece. Por ejemplo:

set ($string = "This is a long string *** but I only want to output this on my email"). 

Quiero imprimir todo el texto después de los 3 asteriscos. Recorrí los foros pero no puedo encontrar nada que me ayude por completo.

Respuesta

20

Velocity es solo una fachada para objetos Java reales, por lo que tiene acceso a todos los public methods of the String class, incluidos indexOf y substring. Así que trate de algo como:

#set ($string = "This is a long string *** but I only want to output this on my email") 
#set ($index = $string.indexOf('***')) 
#set ($index = $index + 3) 
#set ($end = $string.substring($index)) 

Si usted tiene más control sobre qué objetos se pone en el contexto, se podría añadir una instancia de StringUtils como una herramienta de ayuda, y luego usar substringAfter directamente.

+0

Gracias Sergiu es una gran ayuda. La cadena original será un campo de entrada de formato libre, pero puedo hacer que el usuario use *** antes del texto que desea visualizar. Alternativamente, si el usuario comenzó el texto de salida en la línea 5 del cuadro de formato libre, en teoría podría crear una matriz y sacar el quinto elemento en adelante. es posible? Intenté usar el retorno de carro como la división para cada elemento de la matriz, pero parece que no funciona. ¿Algunas ideas? Si no, la solución anterior funcionará bien. – user1680260

+0

Debería funcionar con '$ string.split ('\ n')' en Velocity 1.7, aunque no estoy seguro de las versiones anteriores. –

+0

Gracias Sergiu Dumitriu. Pude usar todos los métodos públicos de la clase String después de $ myVariable = $ myVariable.toString() –

Cuestiones relacionadas