I want to display whether two String objects changed or not. How do you think following code? I guss it is not so bad. But I wonder if another approach might be more sophisticated.
EXPECTED RESULT
--------------------------
1:changed
2:changed
3:changed
--------------------------
package com.javastudy;
public class StringCompareBeforeToAfter {
private static boolean isChanged(String before, String after) {
if(before != null && after == null || before == null && after != null){
return true;
}
if(before != null && !before.equals(after)){
return true;
}
return false;
}
public static void main(String[] args) {
String before1 = null;
String after1 = "a";
if(isChanged(before1, after1)){
System.out.println("1:changed");
}
String before2 = "a";
String after2 = null;
if(isChanged(before2, after2)){
System.out.println("2:changed");
}
String before3 = "a";
String after3 = "b";
if(isChanged(before3, after3)){
System.out.println("3:changed");
}
String before4 = null;
String after4 = null;
if(isChanged(before4, after4)){
System.out.println("4:changed");
}
String before5 = "a";
String after5 = "a";
if(isChanged(before5, after5)){
System.out.println("5:changed");
}
}
}
This seems a mite simpler
private static boolean isChanged(String before, String after) {
if (before == null) {
return after == null;
} else {
return before.equals(after);
}
}
You can also change signature to objects and use method in general case.