Java 比较字符串的不同方法
我浏览了Github上的代码,发现有人用这种方法来比较两个字符串Java 比较字符串的不同方法,java,string,conditional-statements,equals,Java,String,Conditional Statements,Equals,我浏览了Github上的代码,发现有人用这种方法来比较两个字符串 if ("whatever".equals(theString)) 比较字符串的常规方法有什么不同吗 if (theString.equals("whatever")) 上面的路呢 我不确定以前是否有人问过类似的问题,如果是,我道歉 if(“whatever.”等于(字符串)) 其优点是,如果字符串为null,则不会出现null点异常。其余的都是一样的。正如其他人已经指出的,尤达符号用于避免可能的NPE。然而,我并不认为在代码
if ("whatever".equals(theString))
比较字符串的常规方法有什么不同吗
if (theString.equals("whatever"))
上面的路呢
我不确定以前是否有人问过类似的问题,如果是,我道歉 if(“whatever.”等于(字符串))
其优点是,如果字符串为
null
,则不会出现null点异常
。其余的都是一样的。正如其他人已经指出的,尤达符号用于避免可能的NPE。然而,我并不认为在代码中隐藏潜在的bug是一种优势
使用
"whatever".equals(theString)
不会抛出NPE,但您可能认为一切都按预期进行。考虑一种情况,您未能初始化字符串,并且它得到了null
,您的代码不会中断,条件将被计算为false
如果null
指示某些内容,则应检查并适当处理:
if (theString == null) {
// log, initialize or whatever
}
字符串.equals(“无论什么”)
可以抛出NullPointerException<代码>“随便”。等于(字符串)不能。谢谢您的快速回复;)杰里米:这个问题就像你能提出的任何问题一样,已经被问了几百次,回答了几百次。学会搜索信息。