String a = format.format(date); // 例如 "星期二"
String Mon[] = {"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
for (int i = 0; i < 7; i++) {
if (a == Mon[i]) { // 問題在這裡
System.out.println(i + 1);
}
}
在 Java 中,== 比較的是物件的「記憶體位址(參考)」,而不是字串的「內容」。即使兩個字串內容相同,若它們是不同的物件實例,== 也會回傳 false。
if (a.equals(Mon[i])) {
System.out.println(i + 1);
}
String.equals() 比較字串內容。equalsIgnoreCase()。== 看似正常,但這不是可靠的做法。