Kotlin не поддерживает строковые шаблоны из файлов. То есть код как "some variable: $variable"
компилируется в "some variable: " + variable
. Шаблоны String обрабатываются во время компиляции, что означает, что он не работает с текстом, загруженным из файлов, или если вы делаете что-то еще, чтобы String экранировался в необработанную форму. В любом случае, как упоминалось danielspaniol , это будет угрозой безопасности.
Это оставляет три варианта:
String.format(str)
MessageFormat.format(str)
- Создание собственного движка
Я не знаю, что содержит ваш файл, но если это строка, которую вы использовали в функции шаблона, измените ее на:
<h1>Hello {0}. Your age is {1,integer}</h1>
Это для MessageFormat
, что является моим личным предпочтением. Если вы используете String.format
, используйте вместо него %s
и другие подходящие форматы.
Теперь используйте это в MessageFormat.format
:
val result = MessageFormat.format(theString, name, age);
Обратите внимание, что если вы используете MessageFormat
, вам нужно экранировать '
как ''
. См это .