java - java中的文本格式化

标签 java text-formatting

import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Map;

public class TestTokenReplacement {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<>();
        String message = "this/is/{bad}";
        map.put("bad", "good");
        System.out.println(MessageFormat.format(message, map.get("bad")));
    }
}

预期输出是:this/is/good 如何格式化字符串以替换 map 中的字符串标记?

最佳答案

使用字符串

您可以使用String.format()如果您不想导入这样的附加类

String message = "this/is/%s";
String.format(message, map.get("bad"));

在这里,您将使用%s定义要替换的变量。

使用消息格式

您也可以使用 MessageFormat 来完成此操作,但您必须使用参数的索引来标识变量。即:

Map<String, String> map = new HashMap<>();
String message = "this/is/{0}";
map.put("bad", "good");
System.out.println(MessageFormat.format(message, map.get("bad")));

输出

this/is/good

关于java - java中的文本格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43192793/

相关文章:

java - 将用户定义的库添加到 SVN

java - 如何在不使用 sum++; 的情况下正确计算总和?

java - 无法在 JFrame 中使用 drawString() 打印任何字符串

winapi - 富编辑控件 : Prevent Rich Formatting?

vb6 - VB6 RichTextBox 中 creatin 文本部分的格式化颜色

.net - 在 Silverlight 中显示格式化文本

Java:写入OutputStream,然后将其用作InputStream

java - JSoup URL 链接困难

android - 像 Evernote 应用程序一样向 EditText 添加复选框

java - Android - 编辑我的字符串,使每个单词都以大写开头