Given the fragment:
String[][] arra = new String[3][];
arra[0] = new String[]{"rose", "lily"};
arra[1] = new String[]{"apple", "berry", "cherry", "grapes"};
arra[2] = new String[]{"beans", "carrot", "potato"};
// insert code fragment here
Which code fragment when inserted at line '// insert code fragment here', enables the code to successfully change arra elements to uppercase?
A.
for(int i = 0; i < arra.length; i++){
for(int j = 0; j < arra[i].length; j++){
arra[i][j] = arra[i][j].toUpperCase();
}
}
B.
for(int i = 0;i < 3; i++){
for(int j=0; j < 4; j++){
arra[i][j] = arra[i][j].toUpperCase();
}
}
C.
for(String a[] : arra[][]){
for(String x : a[]){
x.toUpperCase();
}
}
D.
for(int i : arra.length){
for(String x : arra){
arra[i].toUpperCase();
}
}
題解
選項A,索引值範圍和修改陣列的方式都是正確的。
選項B,內迴圈錯誤的固定索引範圍會使程式拋出ArrayIndexOutOfBoundsException。
選項C,「toUpperCase」方法並不會直接修改字串的內容,而是會將修改後的字串回傳,所以這樣做是沒有效果的。
選項D有嚴重錯誤的語法,for迴圈無法這樣使用。