Java String格式问题

时间:2017-02-27 11:26:06

标签: java string string-formatting

使用String.format()方法时遇到问题。

所以我想创建一个带换行符的String,我使用%n

我创建了这样的字符串:

for (int i = 0; i < authorNames.size(); i++) {
  tmpReturnString += authorNames.get(i) + "%n";
}

authorNames使用ArrayList。 接下来我想返回格式化的字符串:

returnResult.setAttributes(0, String.format(tmpReturnString.substring(0, tmpReturnString.length() - 1)))

returnResult将是我的回归。

但在这里我得到了java.util.UnknownFormatConversionException: Conversion = '%'

不幸的是,我不知道如何解决这个问题。此外,其他问题没有帮助我。

提前致谢!

2 个答案:

答案 0 :(得分:2)

我想你想删除最后一个新行,但是只删除一个字符,最后你的字符串以%结尾。

请改为:

String.format(tmpReturnString.substring(0, tmpReturnString.length() - 2))

(删除2个字符而不只是1个)

或者,更好的是,如果你使用apache commons:

String.format(StringUtils.join(authorNames, "%n"));

答案 1 :(得分:0)

for (int i = 0; i < authorNames.size(); i++) {
  tmpReturnString += authorNames.get(i) + "%n";
}

总是返回两个最后一个字符为“%n”的字符串。 所以当你使用

substring(0, tmpReturnString.length() - 1)

现在最后一个字符是'%'。 '%'不是有效的格式说明符。

详情请点击此处:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html