Лексикографическое сравнение двух строк в скорости
У меня есть две строковые переменные в шаблоне Velocity. Я хочу сделать лексикографическое сравнение. Я попробовал это:
#if ($string1 > $string2)
#set ($largest = $string1)
#else
#set ($largest = $string2)
#end
## (assume `$string1` and `$string2` are never Null)
Так что если $string1
содержит строку "dog"
а также $string2
содержит строку "cat"
, затем $largest
будет содержать строку "dog"
,
Приведенный выше код генерирует это сообщение:
Left side of '>=' operation is not a Number
Как я могу сделать сравнение, которое я хочу?
1 ответ
Решение
Вы можете использовать Java String метод CompareTo для сравнения строк
Результатом является положительное целое число, если этот объект String лексикографически следует за строкой аргумента
#if ($string1.compareTo($string2) > 0)
#set ($largest = $string1)
#else
#set ($largest = $string2)
#end