J'essaie de concaténer une chaîne avec un int et un caractère, y compris des espaces, mais sans obtenir de concaténation. Quelle est la raison?
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
ne modifie pas les chaînes appelantes, mais en renvoie une nouvelle.
Vous pouvez assigner chaque String
résultante à votre résultat comme ceci.-
messages = messages.concat(String.valueOf(random));
messages = messages.concat(" ");
messages = messages.concat(String.valueOf(ch));
messages = messages.concat(" ");
Ou utilisez simplement l'opérateur surchargé +
messages = String.valueOf(random) + " " + String.valueOf(ch) + " ";
Strings
sont immuables. Vous pouvez soit ajouter le résultat en utilisant la concaténation String
comme indiqué dans d’autres réponses, soit vous pouvez utiliser StringBuilder
StringBuilder messages = new StringBuilder();
messages.append(String.valueOf(random));
messages.append(" ");
messages.append(String.valueOf(ch));
messages.append(" ");
Regardez Comment concaténer deux chaînes en Java?
Edit: (à insérer au début de String
)
messages.insert(0, "newstring");
Une meilleure façon est:
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(" ");
La chaîne doit être réaffectée. Lorsque vous modifiez un objet String, vous créez un nouvel objet String dans le pool de constantes String, mais vous n'avez pas affecté cette nouvelle valeur String à une variable de référence. Vous devez donc réaffecter vos modifications. la même variable de référence qui les a créés