java是否提供内置的静态字符串。比较方法?
在比较字符串时,我不喜欢依赖实例方法,以免调用该方法的字符串恰好为空。在里面NET我只使用静态字符串。比较(string,string,bool)方法。java是否提供了类似的内置“空安全”字符串比较实用程序,还是我必须实现自己的
你可以在下面搜索框中键入要查询的问题!
在比较字符串时,我不喜欢依赖实例方法,以免调用该方法的字符串恰好为空。在里面NET我只使用静态字符串。比较(string,string,bool)方法。java是否提供了类似的内置“空安全”字符串比较实用程序,还是我必须实现自己的
# 1 楼答案
如果要比较的字符串之一是常量,则可以在处理
null
时使用equals
如果有两个变量,则可以编写自己的静态方法:
# 2 楼答案
没有。Apache Commons^{} 是这样做的:
# 3 楼答案
不,JDK不包含这样的实用程序。然而,有几个外部库可以做到这一点。例如
org.apache.commons.lang.StringUtils
提供空安全equals(String, String)
和equalsIgnoreCase(String, String)
。番石榴也有类似的用途# 4 楼答案
String确实提供了一个compareTo method,它无论如何都不是空安全的(也就是说,在实际调用对象上的comapreTo方法之前,需要检查空值)
你可以这样写你自己的比较器
要验证属性,只需执行以下操作:
我并没有真正测试代码,所以把它作为一个通用的例子。 这样做的好处是,即使您无论如何都需要检查null值,也可以编写一次并多次使用它
您还可以查看String类中的a built in Comparator
# 5 楼答案
我猜答案是否定的,你可能需要在之前检查一下
Here some more examples
正如其他人指出的那样,Apache Commons和Spring都有这样的功能:
StringUtils.hasLength()
# 6 楼答案
这里有一个类似的问题 How to simplify a null-safe compareTo() implementation?
它明智地建议使用Apache Commons
ObjectUtils
类