我已经在资源包中存储了一些消息.我正在尝试格式化这些消息,如下所示.
import java.text.MessageFormat;
String text = MessageFormat.format("You're about to delete {0} rows.", 5);
System.out.println(text);
Run Code Online (Sandbox Code Playgroud)
假设第一个参数即实际消息存储在以某种方式检索的属性文件中.
第二个参数即5是一个动态值,应该放在{0}不会发生的占位符中.下一行打印,
您即将删除{0}行.
占位符不会替换为实际参数.
这是撇号 - You're.我试图像往常一样逃避它,就You\\'re好像它不起作用.要使其发挥作用需要做哪些改变?
我写了一个读取文本文件的代码。文本文件包含我想替换的占位符。替换不会以这种方式工作,并且字符串与占位符一起打印。这是我为此编写的代码:
class TestSub(val sub: Sub) {
fun create() = template()
fun template() = Files.newBufferedReader(ClassPathResource(templateId.location).file.toPath()).readText()
}
data class Sub(val name: String, val age: Int)
Run Code Online (Sandbox Code Playgroud)
这是尝试打印最终字符串的主要函数:
fun main(args: Array<String>) {
val sub = Sub("Prashant", 32)
println(TestSub(sub).create())
}
Run Code Online (Sandbox Code Playgroud)
但是,当我使用字符串而不是读取文件时,以下代码有效(替换fun template())
fun template() = "<h1>Hello ${sub.name}. Your age is ${sub.age}</h1>"
Run Code Online (Sandbox Code Playgroud)
有没有办法在读取文件内容时使字符串替换工作?