Java 字符串格式问题

Java String format issue

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

所以我想创建一个带有换行符的字符串,为此我使用 %n

我这样创建字符串:

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

authorNames 成为 ArrayList。 接下来我要 return 格式化字符串:

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

returnResult 将成为我的 return。

但是我得到了一个java.util.UnknownFormatConversionException: Conversion = '%'

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

提前致谢!

我猜您想删除最后一个新行,但是通过只删除一个字符,您最终得到的字符串以 %.

结尾

改为这样做:

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

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

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

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

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

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

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

细节在这里:http://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html