将不同数量的参数添加到属性文件
Add varied number of parameters to properties file
假设我们正在尝试使用属性文件打印出上学儿童的姓名列表,并且姓名列表的大小各不相同:
List<String> names = newArrayList<>("john", "sarah", "george");
属性文件是:
key.print.names = "{0} all go to {1} school"
我想要这样的输出:
john, sarah, and george all go to MLK school
请记住,名单会发生变化。如何使用属性文件完成此操作?
可以简单使用
MessageFormat.format(property.getString("key.print.names"),String.join(",",names),schoolName);
编辑:如何在姓氏之前添加和:
String listOfNames = String.join(" and ",
Arrays.asList(
String.join(",", names.subList(0, names.size() - 1)),
names.get(names.size() - 1)
)
);
MessageFormat.format(property.getString("key.print.names"),listOfNames,schoolName);
编辑:如评论中所建议,如果您想要某种本地化,您可以使用 属性 作为连词,代码段将变为:
String listOfNames = String.join(new StringBuilder(" ")
.append(property.getString("key.conjunction.en"))
.append(" ").toString(),
Arrays.asList(
String.join(",", names.subList(0, names.size() - 1)),
names.get(names.size() - 1)
)
);
MessageFormat.format(property.getString("key.print.names"),listOfNames,schoolName);
假设我们正在尝试使用属性文件打印出上学儿童的姓名列表,并且姓名列表的大小各不相同:
List<String> names = newArrayList<>("john", "sarah", "george");
属性文件是:
key.print.names = "{0} all go to {1} school"
我想要这样的输出:
john, sarah, and george all go to MLK school
请记住,名单会发生变化。如何使用属性文件完成此操作?
可以简单使用
MessageFormat.format(property.getString("key.print.names"),String.join(",",names),schoolName);
编辑:如何在姓氏之前添加和:
String listOfNames = String.join(" and ",
Arrays.asList(
String.join(",", names.subList(0, names.size() - 1)),
names.get(names.size() - 1)
)
);
MessageFormat.format(property.getString("key.print.names"),listOfNames,schoolName);
编辑:如评论中所建议,如果您想要某种本地化,您可以使用 属性 作为连词,代码段将变为:
String listOfNames = String.join(new StringBuilder(" ")
.append(property.getString("key.conjunction.en"))
.append(" ").toString(),
Arrays.asList(
String.join(",", names.subList(0, names.size() - 1)),
names.get(names.size() - 1)
)
);
MessageFormat.format(property.getString("key.print.names"),listOfNames,schoolName);