En Java, j’ai une chaîne comme ceci :
Sera `` Supprimer tous les espaces sur ces côtés ou juste un espace pour chacun ?
En Java, j’ai une chaîne comme ceci :
Sera `` Supprimer tous les espaces sur ces côtés ou juste un espace pour chacun ?
A partir du code source (décompilé):
public String trim()
{
int i = this.count;
int j = 0;
int k = this.offset;
char[] arrayOfChar = this.value;
while ((j < i) && (arrayOfChar[(k + j)] <= ' '))
++j;
while ((j < i) && (arrayOfChar[(k + i - 1)] <= ' '))
--i;
return (((j > 0) || (i < this.count)) ? substring(j, i) : this);
}
Les deux while
que vous pouvez voir signifient que tous les caractères dont l'unicode est inférieur au caractère d'espace, au début et à la fin, sont supprimés.
Une chose à remarquer, cependant, est que la Chaîne.garniture a une curieuse définition de "l'espace". Elle ne supprime pas les espaces Unicode, mais aussi supprime les caractères de contrôle ASCII que vous ne peut pas considérer l'espace.
Cette méthode peut être utilisée pour garnir les espaces de début et de fin de chaîne; en fait, elle coupe tous les caractères de contrôle ASCII.
Si possible, vous pouvez utiliser Commons Lang StringUtils.strip(), qui gère également les espaces Unicode (et est null-fort, trop).
Voir la classe API pour String:
Renvoie une copie de la chaîne, les espaces blancs de début et de fin étant omis.
Les espaces des deux côtés sont supprimés:
Notez que trim()
ne modifie pas l'instance String, il renverra un nouvel objet:
String original = " content ";
String withoutWhitespace = original.trim();
// original still refers to " content "
// and withoutWhitespace refers to "content"
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.