C# Trim() vs replace()

em um C# string se quisermos substituir " " em um texto para string.empty, é bom usar stringValue.Trim() ou stringValue.replace(" ", string.empty). Ambos servem o mesmo propósito. Mas qual é melhor?

Author: maxshuty, 2013-09-19

8 answers

Trim() e Replace() não servem o mesmo propósito.

Trim() remove todos os caracteres em branco do início e do fim do texto. Isso significa ... spaces, tabs, new lines, returns, e outros caracteres em branco variados .

Replace() substitui apenas os caracteres designados pela substituição indicada. Então Replace(" ", string.empty) só irá substituir os espaços por cadeias de caracteres vazias. Replace () também substitui todas as instâncias da cadeia designada com a substituição dada, não apenas aquelas em o início e o fim da corda.

 29
Author: Nick Zimmerman, 2018-07-12 13:59:25

String.Replace irá remover todos (e apenas) caracteres de espaço, e String.Trim irá remover todos os caracteres de espaços em branco do início e do fim do texto, não os do meio.

var tmp = "  hello world  \t";
var res1 = tmp.Trim(); // "hello world"
var res2 = tmp.Replace(" ", String.Empty); // "helloworld\t"
 9
Author: Nemanja Boric, 2013-09-19 18:46:51
char [] chartrim={'*'};
string name=Console.ReadLine(); //input be *** abcd **
string result= name.Trim(chartrim);
Console.WriteLine(result);

Neste caso, a saída será abcd. Aparar apenas remover o espaço em branco ou o símbolo que você quer aparar do início e do fim do texto.

Mas no caso de cordas.Substituir() é que irá substituir o texto que deseja substituir para ex.

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

Neste caso, o / p será mahtab khan.

Se quiser remover espaço entre as cadeias de caracteres (neste caso, o resultado será mahtabalam)

string name=Console.ReadLine(); //input be mahtab alam
string result= name.Replace(" ",string.Empty);
Console.WriteLine(result)
 1
Author: Mahtab Alam, 2016-09-12 14:50:03

String.Trim() irá remover apenas espaços iniciais e finais. Então você terá que usar String.Replace() para o seu propósito.

 0
Author: Forte L., 2013-09-19 18:46:54

O ajuste elimina os espaços em branco iniciais e finais, ao passo que a substituição altera os dados das cadeias de caracteres. Ele muda todas as ocorrências de uma substring em outra substring. Também lida com substituições de caracteres.

 0
Author: DotNetUser, 2013-09-19 18:47:10

A Substituição irá substituí-la em qualquer ponto do texto. Aparar apenas aparará espaço branco a partir do início e fim do string.....So eles fazem coisas diferentes.

 0
Author: Joe, 2013-09-19 18:47:23

Como Nick Zimmerman disse Trim () remove todos os caracteres em branco do início e do fim do texto. Mas você pode usá-lo de uma maneira diferente:

Aparar (char[] trimChars) que remove todas as ocorrências iniciais e finais de um conjunto de caracteres especificados no array passado como parâmetro.

Verificar o MSDN

 0
Author: MSTr, 2014-02-21 10:07:55

O Trimm pode eliminar os caracteres em branco e não em branco apenas a partir do início e/ou fim das cadeias de caracteres. O Replace pode remover substring de qualquer lugar do seu texto.

Exemplo:

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: SE quiser remover apenas caracteres do início ou / e do fim do texto use Trim() caso contrário ligue para Replace().

 0
Author: 1_bug, 2018-08-21 10:49:08