java - 存储字符串格式的实用方法

标签 java formatting

假设我有一个接受以下形式的字符串的协议(protocol):

static final String PROTOCOL_FORMAT = "%s%sT%s%sT%s%s%s%s%s%s%s%s%s%s";

其中每个 %s 指的是必须替换为格式才能完成消息的某些数据。

就我个人而言,我发现以这种字符串替换的形式存储格式非常难以阅读。有没有标准的方法来处理这样的事情?我怎样才能让这个更有表现力?我唯一能想到的就是将 PROTOCOL_FORMAT 抽象到它自己的类中。

编辑(使用示例):

String.format("%s%sT%s%sT%s%s%s%s%s%s%s%s%s%s",
              data1,data2,data3...);

其中每个数据{n}都可以包含与其他数据不同的信息。

Output:12T12T1234567890

但是,最后一个 0 很容易是 99999999 - 或任意长度的任何字符串。

最佳答案

我找到了一种构建消息格式的实用方法。在这种情况下,最好使用构建器类来动态构建消息。 MESSAGE_FORMAT 存储在构建器中。

我所做的是创建一个 MessageBuilder 类,该类具有缓慢填充所需数据的方法。对于那些不熟悉的人来说,这就是builder 设计模式。

例如:

String message = MessageBuilder()
    .displayValue(123)
    .lightColorOne(RED)
    .lightColorTwo(GREEN)
    .lightColorThree(BLUE)
    .build();

消息>>“12T12T1234567890”

关于java - 存储字符串格式的实用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44336123/

相关文章:

java - 如何以减少方法计数的方式编译 Protobuf

java - 应该实现和使用哪个HandlerInterceptorAdapter 方法来清除ThreadLocal?

java - 自定义 View 和 ImageView 之间的像素完美碰撞检测

string - 在excel vba中的给定索引处删除字符串的元素

java - 如何设置开关右侧的文本位置(如复选框)

java - 代码工厂方法

css - 如何为 R 中的数据框/表中的特定单元格着色?

javascript - 从JS的特定数字中删除逗号分隔

excel - 在excel中将数字转换为时间 - 可变位数

ruby-on-rails - Ruby Rubocop - 更喜欢使用 MatchData