动态格式化字符串

Tof*_*eer 5 java

在我徘徊并自己滚动之前,我想知道是否有人知道如何做以下事情......

目前我正在使用MessageFormat来创建一些字符串.我现在要求其中一些字符串具有可变数量的参数.

例如(当前代码):

MessageFormat.format("{0} OR {1}", array[0], array[1]);
Run Code Online (Sandbox Code Playgroud)

现在我需要这样的东西:

// s will have "1 OR 2 OR 3"
String s = format(new int[] { 1, 2, 3 }); 
Run Code Online (Sandbox Code Playgroud)

和:

// s will have "1 OR 2 OR 3 OR 4"
String s = format(new int[] { 1, 2, 3, 4 }); 
Run Code Online (Sandbox Code Playgroud)

有几种方法我可以考虑创建格式字符串,例如每个参数的数量为1个字符串(它们的数量有限,所以这很实用,但看起来很糟糕),或者动态构建字符串(有一个他们很多,所以这可能很慢).

还有其他建议吗?

Tho*_*ung 5

除非,我遗漏了一些事情join.在Java 7获得String.join(没有玩笑)之前,有一些实现,比如Apache commons lang StringUtils.join.

StringUtils.join(new Integer[] { 1, 2, 3, 4 }, "OR");
Run Code Online (Sandbox Code Playgroud)

唯一的问题是它不能直接在primtive int []数组上工作.