java - 在 Java 中连接多个字符串的可读方式

标签 java string

<分区>

我有一些以非常隐秘的方式编写的代码。对于除我以外的任何人来说,这肯定是一场维护噩梦。

它是字符串连接、三元运算符和使用 + 运算符连接的混合体。

所以我的问题是如何使此声明可读?

tb.setTally_narration(
     tb.getTally_mode().equals("Ca") ? 
        "Receipt No. "
             .concat(tb.getTally_receipt_no())
             .concat(", "+tb.getTally_mode()) : 
        "Receipt No. "
             .concat(tb.getTally_receipt_no()+", "+tb.getTally_mode())
             .concat(", "+tb.getTally_instrument_no()+", "+tb.getTally_instrument_date()+", "+tb.getTally_instrument_bank())
);

编辑:我意识到这个问题是主观的。我觉得它属于 codereview stackexchange 站点。可以搬到那里吗?

最佳答案

因为字符串的第一行看起来是一样的,所以我会简单地写成:

StringBuilder narration = new StringBuilder("Receipt No. ");

narration.append(tb.getTally_receipt_no())
         .append(", ").append(tb.getTally_mode());
if (!"Ca".equals(tb.getTally_mode()))
{
    narration.append(", ").append(tb.getTally_instrument_no())
             .append(", ").append(tb.getTally_instrument_date())
             .append(", ").append(tb.getTally_instrument_bank());
}

tb.setTally_narration(narration.toString());

关于java - 在 Java 中连接多个字符串的可读方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18598326/

相关文章:

java - 忽略文件中的数字

java - 通用方法中的比较器解决方案

java - 递归 FFT 错误?

java - 我们如何在 O(n) 时间内实现 "substring-match"?

c++ - C++对象构造方法的区别

string - Java/Maven无法编译简单代码

java - 未抛出 Spring 的自定义异常

java - 如何在Java中读回一个字节?

c# - 转换为字符串,删除一些部分并转换回 byte[]

C 将字符串构建为递归遍历二叉树