2012-09-18 27 views
7

xin lỗi nếu tôi quấy rối hoặc nói một chút dâm dục nhưng tôi mới với vận tốc và những diễn đàn này!Phần đầu ra của một chuỗi trong vận tốc

Tôi cần kiểm tra nội dung của chuỗi cho một ký tự nhất định và xuất phần thứ hai của văn bản nếu nó xuất hiện. Ví dụ:

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

Tôi muốn xuất tất cả văn bản sau 3 Dấu hoa thị. Tôi đã cọ rửa các diễn đàn nhưng không thể tìm thấy bất cứ điều gì giúp tôi hoàn toàn.

Trả lời

20

Vận tốc chỉ là mặt tiền cho các đối tượng Java thực, vì vậy bạn có quyền truy cập vào tất cả public methods of the String class, bao gồm indexOfsubstring. Vì vậy hãy thử một cái gì đó như:

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

Nếu bạn có quyền kiểm soát nhiều hơn những gì các đối tượng bạn đặt trong bối cảnh, bạn có thể thêm một thể hiện của StringUtils như một công cụ trợ giúp, và sau đó sử dụng substringAfter trực tiếp.

+0

Cảm ơn Sergiu đó là một trợ giúp tuyệt vời. Chuỗi gốc sẽ là trường nhập định dạng miễn phí nhưng tôi có thể yêu cầu người dùng sử dụng *** trước văn bản mà họ muốn hiển thị. Bên ngoài, nếu người dùng bắt đầu văn bản đầu ra trên dòng 5 của hộp định dạng tự do, tôi có thể trong lý thuyết tạo ra một mảng và xuất phần tử thứ 5 trở đi. Điều này có thể không? Tôi đã thử bằng cách sử dụng trở về vận chuyển như sự phân chia cho mỗi phần tử mảng nhưng không thể dường như làm cho công việc đó. Bất kỳ ý tưởng? Nếu không phải là giải pháp trên sẽ làm việc tuyệt vời. – user1680260

+0

Nó sẽ hoạt động với '$ string.split ('\ n')' trong vận tốc 1.7, mặc dù tôi không chắc chắn về các phiên bản trước. –

+0

Cảm ơn Sergiu Dumitriu. Tôi đã có thể sử dụng tất cả các phương thức công khai của lớp String sau $ myVariable = $ myVariable.toString() –

Các vấn đề liên quan