web-dev-qa-db-fra.com

C # Trim () vs replace ()

Dans une C # string si nous voulons remplacer " " dans une chaîne par string.empty, est-il bien d'utiliser stringValue.Trim() ou stringValue.replace(" ", string.empty) Les deux servent le même but. Mais lequel est le meilleur?

8
SARAVAN

Trim() et Replace() ne servent pas le même but. 

Trim() supprime tous les blancs du début et de la fin de la chaîne. Cela signifie que spaces, tabs, new lines, returns et autres divers caractères blancs assortis .

Replace() ne remplace que les caractères désignés par le remplacement donné. Donc, Replace(" ", string.empty) ne remplacera que les espaces par des chaînes vides. Replace () remplace également toutes les occurrences de la chaîne désignée par le remplacement donné, pas uniquement celles situées au début et à la fin de la chaîne.

30
Nick Zimmerman

String.Replace supprimera tous les espaces (et les seuls), et String.Trim supprimera tous les espaces du début et de la fin de la chaîne, pas ceux du milieu.

var tmp = "  hello world  \t";
var res1 = tmp.Trim(); // "hello world"
var res2 = tmp.Replace(" ", String.Empty); // "helloworld\t"
9
Nemanja Boric

Le rognage permet d'éliminer les espaces et les caractères non-blancs uniquement au début et/ou à la fin des chaînes.

Exemple:

Console.WriteLine("{{Hello World!:)".Trim('{',':',')'));  //output: Hello World
Console.WriteLine("{{Hello%World!:)".Trim('{', '%', ':',')'));  //output: Hello%World

Console.WriteLine("{{Hello World!:)".Replace("{{", string.Empty)
                                    .Replace(":)",string.Empty));  //output: Hello World

Console.WriteLine("{{Hello%World!:)".Replace("{{", string.Empty)
                                    .Replace("%", string.Empty)
                                    .Replace(":)",string.Empty));  //output: Hello World

TL; DR: si vous souhaitez supprimer uniquement des caractères uniques de début ou de fin de chaîne, utilisez Trim() sinon appelez Replace().

1
1_bug
char [] chartrim={'*'};
string name=Console.ReadLine(); //input be *** abcd **
string result= name.Trim(chartrim);
Console.WriteLine(result);

Dans ce cas, la sortie sera abcd. Couper ne supprime que les espaces ou le symbole que vous voulez couper du début à la fin de la chaîne.

Mais dans le cas de string.Replace (), c'est qu'il va remplacer la chaîne que vous voulez faire remplacer Par ex.

string name=Console.ReadLine(); //input be mahtab alam
string str2="khan";
string result= name.Replace("alam",str2);
Console.WriteLine(result);

Dans ce cas, o/p sera mahtab khan.

Si vous souhaitez supprimer de l'espace entre les chaînes (dans ce cas, la sortie sera mahtabalam)

string name=Console.ReadLine(); //input be mahtab alam
string result= name.Replace(" ",string.Empty);
Console.WriteLine(result)
1
Mahtab Alam

String.Trim() supprimera uniquement les espaces de début et de fin. Vous devrez donc utiliser String.Replace() pour vos besoins.

0
Forte L.

Le rognage élimine les espaces de début et de fin, tandis que Remplacer modifie les données de chaîne. Il change toutes les occurrences d'une sous-chaîne en une autre. Il gère également les remplacements de personnage. 

0
DotNetUser

Remplacer le remplacera n'importe où dans la chaîne. Trim ne supprime que les blancs du début et de la fin de la chaîne ..... Ils font donc différentes choses.

0
Joe

comme Nick Zimmerman a dit que Trim () supprime tous les caractères d'espacement du début et de la fin de la chaîne. Mais vous pouvez l'utiliser d'une manière différente:

Trim (char [] trimChars) qui supprime toutes les occurrences de début et de fin d'un jeu de caractères spécifié dans le tableau transmis en tant que paramètre.

Vérifiez MSDN

0
MSTr