Given the fragment:
String[][] arra = new String[3][];
arra[0] = new String[]{"rose", "lily"};
arra[1] = new String[]{"apple", "berry","cherry","grapes"};
arra[0] = 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. String[][] arra = new String[3][];
arra[0] = new String[]{"rose", "lily"};
arra[1] = new String[]{"apple", "berry","cherry","grapes"};
arra[0] = new String[]{"beans", "carrot","potato"};
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();
}
}
Answer A compiles and works on my system.
Answer C produces an error because the syntax is wrong for the enhanced for loop. I should look like this:
for (String[] a : arra) {
for(String x : a){
x.toUpperCase();
}
}
But this too won’t work because String objects are immutable in Java, so x.toUpperCase() will not change the letters in the String arrays to uppercase.
la A tampoco funcionaria recibiría un Exception in thread “main” java.lang.NullPointerException