有没有一种优雅的方法来比较两者Strings
并检查它们是否不同?例如在 中Java
,我通常使用类似这样的东西:
if (text1 != text2 || (text1 != null && !text1.equals(text2))) {
// Texts are different
}
这是很常见的事情,我想知道也许有更好的方法。
编辑: 理想情况下,我想要一个适用于最常见的面向对象语言的伪代码。
有没有一种优雅的方法来比较两者Strings
并检查它们是否不同?例如在 中Java
,我通常使用类似这样的东西:
if (text1 != text2 || (text1 != null && !text1.equals(text2))) {
// Texts are different
}
这是很常见的事情,我想知道也许有更好的方法。
编辑: 理想情况下,我想要一个适用于最常见的面向对象语言的伪代码。
在 Java 7+ 中,您可以使用Objects#equals
:
if (!Objects.equals(text1, text2))
在引擎盖下,它的作用类似于您问题中的代码:
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
请注意,顺便说一句,您的代码在 Java 中被破坏了:在这种情况下它将返回 false:
String text1 = "abc";
String text2 = new String("abc");
if (text1 != text2 || (text1 != null && !text1.equals(text2))) {
System.out.println("Ooops, there is a bug");
}
编写isNotEquals
条件的正确方法是:
if (text1 != text2 && (text1 == null || !text1.equals(text2)))
Java(7 起):
Objects.equals(first, second);
C#:
string.Equals(first, second);
在 c# 中,我个人使用上面的
If(!string.IsNullOrEmpty(text1) || (!string.IsNullOrEmpty(text2) && (text1 != text2 )))
{}