2012-09-18 12 views
7

scuse se chiacchierano o parlo un po 'di jibberish ma sono nuovo alla velocità, e questi forum!Parte di uscita di una stringa in velocità

Ho bisogno di controllare il contenuto di una stringa per un certo carattere e di produrre la seconda parte del testo se appare. Ad esempio:

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

Voglio stampare tutto il testo dopo i 3 asterischi. Ho setacciato i forum ma non riesco a trovare nulla che mi aiuti completamente.

risposta

20

La velocità è solo una facciata per oggetti Java reali, quindi è possibile accedere a tutti gli public methods of the String class, inclusi indexOf e substring. Quindi, provare qualcosa di simile:

#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)) 

Se hai più controllo su ciò che gli oggetti si mette nel contesto, si potrebbe aggiungere un'istanza di StringUtils come strumento di aiuto, e quindi utilizzare substringAfter direttamente.

+0

Grazie Sergiu questo è un grande aiuto. La stringa originale sarà un campo di immissione del formato libero, ma posso chiedere all'utente di usare *** prima del testo che vogliono visualizzare. In alternativa, se l'utente avviò il testo di output sulla riga 5 della finestra di formato libero, in teoria potevo creare una matrice e produrre in uscita il quinto elemento. È possibile? Ho provato a utilizzare il ritorno a capo come divisione per ogni elemento dell'array ma non riesco a farlo funzionare. Qualche idea? Se non la soluzione di cui sopra funzionerà alla grande. – user1680260

+0

Dovrebbe funzionare con '$ string.split ('\ n')' in Velocity 1.7, anche se non sono sicuro delle versioni precedenti. –

+0

Grazie Sergiu Dumitriu. Sono stato in grado di utilizzare tutti i metodi pubblici della classe String dopo $ myVariable = $ myVariable.toString() –

Problemi correlati