Perché il metodo concat () di Java non fa nulla?

Questo codice:

String s = "TEST"; String s2 = s.trim(); s.concat("ING"); System.out.println("S = "+s); System.out.println("S2 = "+s2); 

risultati in questo output:

 S = TEST S2 = TEST BUILD SUCCESSFUL (total time: 0 seconds) 

Perché “TEST” e “ING” non sono concatenati insieme?

una stringa è immutabile , il che significa che non è ansible modificare una stringa in Java. concat () restituisce una nuova stringa concatenata.

 String s = "TEST"; String s2 = s.trim(); String s3 = s.concat("ING"); System.out.println("S = "+s); System.out.println("S2 = "+s2); System.out.println("S3 = "+s3); 

Poiché String è immutabile, la class String non contiene metodi che modificano il contenuto dell’object String stesso. Il metodo concat() restituisce una nuova String che contiene il risultato dell’operazione. Invece di questo:

 s.concat("ING"); 

Prova questo:

 s = s.concat("ING"); 

Penso che quello che vuoi fare è:

 s2 = s.concat("ING"); 

La funzione concat non cambia la stringa s, restituisce semplicemente s con l’argomento aggiunto.

concat restituisce una stringa, quindi stai praticamente chiamando concat senza memorizzare ciò che restituisce. Prova questo:

 String s = "Hello"; String str = s.concat(" World"); System.out.println(s); System.out.println(str); 

Dovrebbe stampare:

 Hello Hello World 

.concat() metodo .concat() restituisce un nuovo valore concatenato. lì hai fatto s.concat("ING") -> questo restituisce il valore “Test”. Ma devi riceverlo nella variabile dichiarata.

Se hai fatto s=s.concat("ING"); allora il valore di “s” cambierà in “TEST”

Come String è immutabile quando concat () viene chiamato su qualsiasi object String come

String s = “abc”; new String obj viene creato in String pool ref di s

s = s.concat (“def”); qui un altro String obj con val abcdef è creato e referenziato da s