Give:
public class Test {
public static void main(String[] args) {
String
svar = "sports
cars";
svar.replace(svar,
"convertibles");
System.out.printf("There are %3$s
%2$s and %d trucks.", 5, svar, 2 + 7);
}
}
What is the
result?
A.
There are 27 sports cars and 5 trucks
There are 27 sports cars and 5 trucks
B.
There are 27 convertibles and 5 trucks
There are 27 convertibles and 5 trucks
C.
There are 9 sports cars and 5 trucks
There are 9 sports cars and 5 trucks
D.
There are 9 convertibles and 5 trucks
There are 9 convertibles and 5 trucks
E.
IllegalFormatConversionException is thrown at runtime
IllegalFormatConversionException is thrown at runtime
La
risposta è C
svar viene inizializzato a
"sports cars" ma il replace la sostituisce interamente con
"convertibles"
svar viene inizializzato a "sports cars" . Il replace la sostituisce interamente con "convertibles" ma svar non viene modificata, quindi rimane uguale in valore a "sports cars".
printf() stampa la stringa sostituendo le parti che rispettano la sintassi , quindi :
%3$s è il terzo ingresso scritto come stringa quindi 2+7.
Prima della stampa viene eseguita la somma (+) e quindi
%3$s=9
%2$s è il secondo igresso scritto come stringa
e quindi è il valore di svar e cioè:
%2$s= sports
cars
%d è il primo ingresso scritto come digit e quindi
%d=5
Perciò si stampa There are 9 sports cars and 5 trucks
%d è il primo ingresso scritto come digit e quindi
%d=5
Perciò si stampa There are 9 sports cars and 5 trucks
Per vedere
effettivamente la sostituzione di “sports
cars” con “convertibles” questa
riga di codice :
svar.replace(svar, "convertibles");
deve
essere sostituita con
svar = svar.replace(svar, "convertibles");
Hi I taken 803.with ur blog i have successfully complted. thanks for ur support....
RispondiEliminaso i am planning to take 804 also please give me ur support..
La risposta è C non D. Le String sono immutabili e quindi replace non agisce direttamente sulla stringa, ma crea un nuovo oggetto. Poiché la String restituita da replace non viene assegnata di nuovo a svar, la reference punta ancora alla stringa "sports cars". Basta eseguire il codice per averne la prova.
RispondiEliminaVero, ho corretto la risposta.
RispondiEliminaGrazie.