2015-09-29 2 views
0

У меня есть строковая переменная, содержащая только одну букву типа «D» или «A» и т. Д.
Я хочу заменить это письмо на явный текст, но когда я делаю (в данном случае " $ F {Действие}»содержит "D"):jasper replace Строковый код

$F{Action}.replace('D','Apple').replace('A','text') 

мой результат "textpple" Поскольку Apple Beggin с "а" и мой второй заменить на букву "а"

Как можно Я делаю, чтобы заменить письмо только на замену статуи, а не на замену других?

+1

Можете ли вы четко объяснить свой вопрос? Каков ваш вклад и каков ваш ожидаемый результат? – Viki888

+0

Один из способов сделать так, чтобы сделать первую замену на временную строку-заполнитель, которая не будет возникать в ваших текстах (например, $$ %% $$), а в конце замените ее на «Apple» (т.е. добавив третью замену). –

+0

Я не понимаю, что вы сказали @JanDoggen Я думаю, что лучший способ сделать то, что я хочу, это сделать скрипт, кто-нибудь знает, как это сделать? –

ответ

0

Для этой небольшой работы нет необходимости использовать скриптлет. Вы можете попробовать использовать приведенное ниже выражение

$F{Action}.contains("D") ? "Apple" : $F{Action}.contains("A") ? "text" : "" 

Надеюсь, что это ваше требование.

+0

Спасибо, но, к сожалению, это не сработало:/ Я пробовал с «replaceFirst» и «replaceAll», но он не работает, тот же результат, что и «replace» –

+0

Я отредактировал свой ответ с вашим требованием. – Viki888

+0

спасибо, что это работает! :) –

Смежные вопросы