Лексикографическое сравнение двух строк в скорости

У меня есть две строковые переменные в шаблоне 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
Другие вопросы по тегам