java - 结合格式化和字符串附加的惯用方法?

标签 java string

是否有比这个示例更好的方法来构建具有格式化和附加功能的字符串?这是一个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/

相关文章:

java - 当另一方使用 readUTF/writeUTF 时如何用 netty 读/写?

仅在不存在时添加的 Java 命名约定

arrays - Mongoose 枚举字符串数组验证?

c# - GUID 的格式是否始终相同?

java - 使用 Matlab-Java-API 给出 ​​ "no nativemvm in java.library.path"

java - 使用 Eclipse 和 Maven 运行 SpringBoot JUnit-Tests 时的不同结果

java - Mysql如何保证主键自增是线程安全的?

arrays - 如何使用Kotlin String的get方法

c - qsort 一个字符串数组,比较

Java single char 由多个字节表示的字符串