【问题标题】:How to combine isEmpty, isBlank and null check while validating string in java [duplicate]如何在java中验证字符串时结合isEmpty,isBlank和null检查[重复]
【发布时间】:2021-11-05 16:29:24
【问题描述】:

我正在验证给定字符串是 nullisEmptyisBlank,并且我有一个用例,我必须检查 productIdproductItem 是否应该出现或 productName 和 @987654329 @ 应该包含值。为此,我在下面写了 if 条件,但它看起来非常笨拙且不可读。有人可以帮助我如何简化这个 if 条件并以更易读的格式编写。

public class validate {

    public static void main(String[] args) {

        String productId = "";
        String productItem = "";
        String productName = "Apple";
        String productPrice = "1500";

        if ((!productId.isEmpty() && !productId.isBlank() && productId != null
                || !productItem.isEmpty() && !productItem.isBlank() && productItem != null)
                || (!productName.isEmpty() && !productName.isBlank() && productName != null
                && !productPrice.isEmpty() && !productPrice.isBlank() && productPrice != null)) {

            System.out.println("valid");
        } else {
            System.out.println("not valid");
        }

}
}

【问题讨论】:

标签: java java-8


【解决方案1】:

一般来说,您通常可以通过定义辅助方法来简化代码。

定义这个助手:

boolean isNullEmptyOrBlank(String s) {
    return s == null || s.isEmpty() || s.isBlank());
}

然后

if (isNullEmptyOrBlank(productId) && isNullEmptyOrBlank(productItem) && isNullOrEmptyOrBlank(productName)) {
    // invalid - unknown product
}
else if (isNullOrEmptyOrBlank(productValue)) {
   // invalid - unknown price
}
else {
  // valid
}

我不确定你的逻辑是否正确,但你应该明白。

在实践中,我可能会认为 isNullEmptyOrBlank 是一个笨拙的名称,而是将其命名为 isSet 之类的名称。

【讨论】:

    猜你喜欢
    • 2016-06-26
    • 2012-10-02
    • 2018-12-20
    • 2011-12-17
    • 1970-01-01
    • 2013-01-21
    • 2011-11-15
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多