-2

Strings2 つを比較して、それらが異なるかどうかを確認するエレガントな方法はありますか? たとえば、Javaでは、通常、次のようなものを使用します。

if (text1 != text2 || (text1 != null && !text1.equals(text2))) {
    // Texts are different
}

これは非常に一般的なことなので、もっと良い方法があるのではないかと思っていました。

編集: 理想的には、最も一般的なオブジェクト指向言語に適用可能な疑似コードが必要です。

4

4 に答える 4

10

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)))
于 2013-06-11T08:32:37.040 に答える
0

個人的にはC#で上記を使用します

If(!string.IsNullOrEmpty(text1) || (!string.IsNullOrEmpty(text2) && (text1 != text2 )))
 {}
于 2013-06-11T08:34:45.487 に答える