L'objectif principal de la méthode trim() que nous utilisons généralement est de supprimer les espaces de début et de fin de la chaîne. Cependant, d'après mon expérience pratique personnelle, j'ai découvert que la méthode trim() ne peut supprimer que certains espaces ou caractères d'espacement, tels que les espaces demi-largeur ; pour les espaces pleine largeur, trim() ne peut pas les supprimer. Donc, à ce stade, vous devez utiliser des règles régulières pour supprimer les espaces de début et de fin, les caractères d'espacement, les caractères de nouvelle ligne ou de tabulation, les caractères de nouvelle ligne, etc. de la chaîne :
public static void main(String[] args){ String keyword = " 空格符与制表符等 "; keyword = keyword.replaceAll("^[ *| *| *|//s*]*", "").replaceAll("[ *| *| *|//s*]*$", ""); System.out.println("keyword : "+keyword); }
Il y a une autre information J'ai trouvé sur Internet comme ceci Explication : Décompilez d'abord la méthode trim() et obtenez :
public string Trim() { return this.TrimHelper(WhitespaceChars, 2); }
Après décompilation de la méthode TrimHelper, on obtient :
private string TrimHelper(char[] trimChars, int trimType) { int num = this.Length - 1; int startIndex = 0; if (trimType != 1) { startIndex = 0; while (startIndex < this.Length) { int index = 0; char ch = this[startIndex]; index = 0; while (index < trimChars.Length) { if (trimChars[index] == ch) { break; } index++; } if (index == trimChars.Length) { break; } startIndex++; } } if (trimType != 0) { num = this.Length - 1; while (num >= startIndex) { int num4 = 0; char ch2 = this[num]; num4 = 0; while (num4 < trimChars.Length) { if (trimChars[num4] == ch2) { break; } num4++; } if (num4 == trimChars.Length) { break; } num--; } } int length = (num - startIndex) + 1; if (length == this.Length) { return this; } if (length == 0) { return Empty; } return this.InternalSubString(startIndex, length, false); }
TrimHelper a deux paramètres : Un paramètre, trimChars, est un tableau de caractères à supprimer aux deux extrémités de la chaîne ; le deuxième paramètre, trimType, est le type qui identifie Trim(). Il existe trois valeurs pour trimType : lorsque 0 est transmis, les caractères vides en tête de la chaîne sont supprimés ; lorsque 1 est transmis, les caractères vides à la fin de la chaîne sont supprimés lorsque d'autres valeurs ; sont transmis, les caractères vides aux deux extrémités de la chaîne sont supprimés. La conclusion finale est la suivante : la méthode String.Trim() supprimera les deux extrémités de la chaîne, pas seulement les caractères d'espacement, elle peut supprimer un total de 25 caractères : ('/t', '/n', '/v', ' /f', '/r', ' ', '/x0085', '/x00a0', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '?', '/u2028', '/u2029', ' ', '?').
Il existe deux autres méthodes similaires à trim() : TrimStart() qui supprime les caractères vides au début de la chaîne et TrimEnd() qui supprime les caractères vides à la fin de la chaîne.
Si vous souhaitez supprimer des caractères aux deux extrémités de la chaîne, vous pouvez utiliser la méthode surchargée de Trim : String.Trim(Char[]). Le code source de cette méthode est :
public string Trim(params char[] trimChars) { if ((trimChars == null) || (trimChars.Length == 0)) { trimChars = WhitespaceChars; } return this.TrimHelper(trimChars, 2); }.
Il faut faire attention : espace != caractère vide Si vous souhaitez supprimer les espaces, vous pouvez utiliser Trim(' ').
[Recommandations associées]
1 Explication détaillée des exemples d'utilisation de Java trim
2.Explication détaillée de String. Exemple de méthode .trim en Java ()
3 trim() en js Comment supprimer les espaces des deux côtés d'une chaîne
5.La fonction PHP trim() qui supprime les espaces et les caractères spéciaux du début et de la fin d'une chaîne.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!