String.concat () no hace concatenación

Estoy tratando de concatenar una cadena con un int y char incluyendo espacios, pero no obtener ninguna concatenación. ¿Cual es la razon?

private String messages; Random r = new Random(); int random = r.nextInt(1000); char ch='s'; messages.concat(String.valueOf(random)); messages.concat(" "); messages.concat(String.valueOf(ch)); messages.concat(" "); 

concat no altera las cadenas de invocación, pero devuelve una nueva.

Puede asignar cada String resultante a su resultado como este.-

 messages = messages.concat(String.valueOf(random)); messages = messages.concat(" "); messages = messages.concat(String.valueOf(ch)); messages = messages.concat(" "); 

O simplemente utilizar el operador sobrecargado +

 messages = String.valueOf(random) + " " + String.valueOf(ch) + " "; 

Strings son inmutables. Puede anexar el resultado utilizando String concatenación String como se muestra en otras respuestas o puede utilizar StringBuilder

 StringBuilder messages = new StringBuilder(); messages.append(String.valueOf(random)); messages.append(" "); messages.append(String.valueOf(ch)); messages.append(" "); 

Echa un vistazo ¿Cómo puedo concatenar dos cadenas en Java?


Editar: (para insertar al principio de la String )

 messages.insert(0, "newstring"); 

Una mejor manera es:

 Random r = new Random(); int random = r.nextInt(1000); StringBuilder str = new StringBuilder(String.valueOf(random)); str.append("s") str.append(String.valueOf(random)) str.append(" "); str.append(String.valueOf(ch)); 
 messages += String.valueOf(random) + " " + String.valueOf(ch) + " "; 
 char ch='s'; messages = messages.concat(String.valueOf(random)); messages = messages.concat(" "); messages = messages.concat(String.valueOf(ch)); messages = messages.concat(" "); 

String debe ser RE-Assigned, cuando se edita un objeto String, se crea un nuevo Objeto String en el grupo constante String, pero no se asigna este nuevo valor String a ninguna variable de referencia, por lo que tendrá que reasignar sus modificaciones a La MISMA VARIABLE DE REFERENCIA que los creó

  • Escáner ZBar sólo QR
  • ¿Por qué super.onDestroy () en java - Android va en la parte superior en los destructores?
  • GLSurfaceView que causa ANR después de la actividad se destruye
  • Android studio no puede resolver el símbolo común, que falta en el paquete android.gms
  • Guardar ubicación de red como un archivo .txt (sin utilizar GPS)
  • Portar el código de gráficos AWT a Android
  • La aplicación de Android no aparece en el emulador
  • Smack 4.1 Problema de re-conexión
  • Enviar correo electrónico mediante programación en Android
  • Android: ¿Cómo puedo establecer un listener para el MenuButton?
  • Logros de Google Play "IOException: Dirección ya en uso"
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.