2015-12-09 3 views
1

Мне не удалось заменить только части строки скоростью.Заменить только часть строки со скоростью

Пусть следующий шаблон скорости:

$test 
something$test 
$test.something 

Я хочу, чтобы заменить все вхождения $test со строкой TEST.

поэтому я использую следующий код:

VelocityContext context = new VelocityContext(); 
    context.put("test", "TEST"); 

Это результат, я ожидаю:

TEST 
somethingTEST 
TEST.something 

Но то, что я действительно получаю:

TEST 
somethingTEST 
$test.something 

Так, очевидно, скорость не заменяет переменную, если после имени переменных есть текст.

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

ответ

3

Ошибка $test.something.

Ожидается переменная something внутри объекта test.

Использование ${test}.something вместо ...

--Cheers, Jay

0

Проблема, с которой вы сталкиваетесь здесь, - это не «очевидно, что Velocity не заменяет переменную, если после имени переменных есть текст».

Символ '$' используется для обозначения начала любой строки. Таким образом, вам нужно найти способ избежать этого символа во входной строке, так что буквальное значение «$» не считается

+0

Извините за поздний ответ. Но я тебя не понимаю. Насколько я понимаю, символ «$» - это начало переменной, а не начало строки по скорости. Как видно из примера, вторая строка, где переменная начинается где-то в области, правильно изменена. – radlan

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