是否有比这个示例更好的方法来构建具有格式化和附加功能的字符串?这是一个Java问题。
编辑:如果 Formatter() 能够更像 StringBuilder() 或 StringBuilder() 能够像 Formatter() ,似乎会更好。我特别不喜欢捕获异常,因为这只是一种“toString”类型的方法,也就是说,微不足道。另外,如果我想在循环后通过 %d 附加一个整数怎么办?
String methodToYieldMyInstanceAsString()
{
Formatter f = new Formatter();
f.format("%s %d\n", thing1, thing2);
for (Entry<KeyType, ValueType> entry: map.entrySet())
{
try
{
f.out().append(entry.getKey().asString() + " ");
f.out().append(entry.getValue().asString() + "\n");
}
catch (IOException e)
{
throw new RuntimeException();
}
}
return f.toString();
}
这段代码的一个好处是我只使用了一个 Formatter 对象,就其值(value)而言。
最佳答案
如果您自己调用 format
方法,则可以避免 IOException
,它仅抛出未经检查的异常。只需稍微更改您的代码即可:
StringBuilder builder = new StringBuilder();
Formatter f = new Formatter(builder);
for (...) {
f.format("%s %d\n", entry.getKey(), entry.getValue());
}
return builder.toString();
关于java - 结合格式化和字符串附加的惯用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988454/