Given the code fragment:



Which code fragment, when inserted at line n1, enables the App class to print Equal?

A.

B.

C.

D.

題解

Java的「==」運算子會判斷運算元的值是否相等,而非內容是否相等。在這裡若要輸出「Equal」,必須要讓if條件式成立。

選項A,str2和str3都是參考至相同的物件,但str1和str2是兩個不同的物件,所以它們的參考值是不一樣的,if條件式不會成立。

選項B,equalsIgnoreCase方法可以判斷字串在忽略字母大小寫的情況下是否相等。str1是「Java」,str2是「java」,因此if條件式成立。

選項C,str2和str3都是參考至相同的物件,equals可以判斷字串是否完全相等。str1是「Java」,str3是「java」,因此if條件式不成立。

選項D,toLowerCase方法會回傳將字串內的字母全都轉成小寫字母的結果。str1.toLowerCase()會回傳「java」,str2.toLowerCase()會回傳「java」,但雖然這兩字串都是「java」,它們實際上是不同的物件,因此有不同的參考,所以經過「==」運算後,結果將為false。