java - 附加非空字符串的优雅方式

标签 java string oop

我有一个包含一些属性的类,如果值不为空,我想连接该属性。优雅的方法是什么?到目前为止我所做的是这样的(在 combine 方法中)。

public class X {
    private String a;
    private String b;
    private String c;
    private String d;
    private String e;
    private int f;
    private Date g;

    public String combine() {
        String result = "";
        if (!StringUtils.isEmpty(this.a)) {
            result += a + "\n";
        }
        if (!StringUtils.isEmpty(this.b)) {
            result += b + "\n";
        }
        if (!StringUtils.isEmpty(this.c)) {
            result += c + "\n";
        }
        if (!StringUtils.isEmpty(this.d)) {
            result += d + "\n";
        }
        if (!StringUtils.isEmpty(this.e)) {
            result += e + "\n";
        }
        return result;
    }
}

最佳答案

您可以使用 java-8 streamtoString 方法中执行此操作

Stream.of(this.getA(),this.getB(),this.getC(),this.getD(),this.getE())
      .filter(str->!StringUtils.isEmpty(str))
      .collect(Collectors.joining("\n"));

或者您可以使用 StringUtils。 isNotEmpty

 Stream.of(this.getA(),this.getB(),this.getC(),this.getD(),this.getE())
      .filter(StringUtils::isNotEmpty)
      .collect(Collectors.joining("\n"));

关于java - 附加非空字符串的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58610494/

相关文章:

ruby - 提高 OOP 技能?哪个 Smalltalk?

java - Web 应用程序为不同的用户提供不同的 URL

java - 如何使用 JAXB 在我的 Java 代码中创建 UUID 以传递 XSD 模式限制

java - 使用指数解析字符串 (Java)

java - 从 Levenshtein 距离获取每一步

python - 仅当列值是字符串时才将它们转换为小写

java - VirtualEnv Python 在 MacOS 中作为 Java Python 解释器

java - JPanel 上的文本页面

java - 为什么像下面这样的一些方法需要访问修饰符 "static"?

PHP OOP 接口(interface)类型继承