字符串插值java 1.3及以下(如果可能)?

时间:2013-06-10 21:32:56

标签: java format interpolation

我有一个简单的字符串,我需要插入一些数字和字符串。

Say String a =“我的名字是%s。我已经%d岁了。”

我还需要在其中几个孔中插入相同的数字或字符串。 我需要一个解决方案,适用于java的古老版本至少1.3 我知道String.format(JDK 5+)。我读到格式化程序,我的头疼!!!

请帮忙。

2 个答案:

答案 0 :(得分:2)

您唯一的选择是在这里使用MessageFormat

你输入:

String s = "My name is {0}. I am {1} years old";

并使用适当的方法将其呈现为字符串。例如:

String ret = MessageFormat.format(s, "John", 32);

我想给javadoc添加一个链接,但是......我不知道自1.3以来发生了多大的变化! (好吧,链接补充说,它不会伤害)

(应该注意的是,即使在2013年,Java的ResourceBundle s 仍然使用MessageFormat并读取ISO-8859-1中的属性文件,而不是UTF-8)

答案 1 :(得分:1)

这个怎么样

String text = "The user {0} has email address {1}."
String msg = MessageFormat.format(text, params);

还有这个

String text = "The user {name} has email address {email}.";
Object[] params = { "nameRobert", "rhume55@gmail.com" };
Map map = new HashMap();
map.put("name", "Robert");
map.put("email", "rhume55@gmail.com");

System.out.println("1st : " + MapFormat.format(text, map));