webentwicklung-frage-antwort-db.com.de

Wie man Leerzeichen zwischen Zeichen trimmt

Wie entferne ich Leerzeichen zwischen Zeichen in c #?

Trim() kann verwendet werden, um die leeren Leerzeichen am Anfang der Zeichenfolge sowie am Ende zu entfernen. Zum Beispiel " C Sharp ".Trim() Ergebnisse "C Sharp".

Aber wie kann man die Zeichenfolge in CSharp umwandeln? Wir können das Leerzeichen mit einer for- oder einer for each-Schleife zusammen mit einer temporären Variablen entfernen. Aber gibt es in C#(.Net framework 3.5) eine eingebaute Methode, um dies wie Trim() zu tun?

18

Sie könnten String.Replace Methode verwenden

string str = "C Sharp";
str = str.Replace(" ", "");

oder wenn Sie alle Leerzeichen entfernen möchten (Leerzeichen, Tabulatoren, Zeilenumbrüche ...) 

string str = "C Sharp";
str = Regex.Replace(str, @"\s", "");
41
Julien Hoarau

Verwenden Sie String.Replace , um alle Leerzeichen durch nichts zu ersetzen. 

z.B

string newString = myString.Replace(" ", "");
2
w69rdy

Wenn Sie zwischen jedem Wort ein Leerzeichen halten möchten. das sollte es tun .. 

 public static string TrimSpacesBetweenString(string s)
    {
        var mystring  =s.RemoveTandNs().Split(new string[] {" "}, StringSplitOptions.None);
        string result = string.Empty;
        foreach (var mstr in mystring)
        {
            var ss = mstr.Trim();
            if (!string.IsNullOrEmpty(ss))
            {
                result = result + ss+" ";
            }
        }
        return result.Trim();

    }

es entfernt die Zeichenfolge zwischen der Zeichenfolge , wenn also die Eingabe erfolgt 

var s ="c           sharp";
result will be "c sharp";
1
Parminder
//Remove spaces from a string just using substring method and a for loop 
static void Main(string[] args)
{
    string businessName;
    string newBusinessName = "";
    int i;

    Write("Enter a business name >>> ");
    businessName = ReadLine();

    for(i = 0; i < businessName.Length; i++)
    {
        if (businessName.Substring(i, 1) != " ")
        {
            newBusinessName += businessName.Substring(i, 1);
        }
    } 

    WriteLine("A cool web site name could be www.{0}.com", newBusinessName);
}
1
Dave

Wenn Sie zwischen jedem Wort ein Leerzeichen lassen möchten. Sie können es auch so machen:

string.Join(" ", inputText.Split(new char[0], StringSplitOptions.RemoveEmptyEntries).ToList().Select(x => x.Trim()));
0
Reyan Chougle

Diese Methode eignet sich hervorragend für das Erstellen einer Klasse, die eine berechnete Eigenschaft verwendet, um beispielsweise "productName" zu verwenden, und das Leerzeichen zu entfernen, um eine URL zu erstellen, die einem Image entspricht, das den Produktnamen ohne Leerzeichen verwendet. Zum Beispiel:

    namespace XXX.Models
    {
        public class Product
        {
            public int ProductID { get; set; }
            public string ProductName { get; set; }
            public string ProductDescription { get; set; }

            public string ProductImage
            {
                get { return ProductName.Replace(" ", string.Empty) + ".jpg"; }
            }
        }
    }

In dieser Antwort habe ich also eine sehr ähnliche Methode wie w69rdy verwendet, aber in einem Beispiel verwendet und zusätzlich string.Empty anstelle von "" verwendet. Und obwohl es nach .NET 2.0 keinen Unterschied gibt, finde ich es für andere, die meinen Code lesen müssen, viel einfacher zu lesen und zu verstehen. Ich bevorzuge das auch, weil ich mich manchmal in allen Anführungszeichen in einem Codeblock verliere.

0
Eric Bishard
var str="  c sharp  "; str = str.Trim();
        str = Regex.Replace(str, @"\s+", " ");  ///"c sharp"
0
Mekala V
string myString = "C Sharp".Replace(" ", "");
0
Andy Rose