2010-10-11 17 views
15

Come rimuovere gli spazi bianchi tra i caratteri in C#?Come tagliare gli spazi bianchi tra i caratteri

Trim() può essere utilizzato per rimuovere gli spazi vuoti all'inizio della stringa e alla fine. Ad esempio, " C Sharp ".Trim() risultati "C Sharp".

Ma come trasformare la stringa in CSharp? Possiamo rimuovere lo spazio utilizzando un ciclo for o for each insieme a una variabile temporanea. Ma c'è qualche metodo integrato in C#(.Net framework 3.5) per fare questo come Trim()?

+0

[Non dotato di un metodo,] (http: // dotnetperls.com/remove-whitespace) ma piuttosto semplice –

risposta

33

Si potrebbe utilizzare il metodo String.Replace

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

o se si desidera rimuovere tutti i caratteri di spaziatura (spazio, schede, le interruzioni di linea ...)

string str = "C Sharp"; 
str = Regex.Replace(str, @"\s", ""); 
+0

oh .... sì. ho ottenuto il metodo 'replace'. Grazie –

+2

Questo sostituisce solo gli spazi, non gli spazi bianchi (i due non sono gli stessi) –

+0

@Paul, hai ragione, grazie. Ho aggiornato la mia risposta. –

0
string myString = "C Sharp".Replace(" ", ""); 
+1

Il carattere letterale vuoto '' genera un errore del compilatore. –

+1

sostituire '''' in '" "' –

2

Usa String.Replace per sostituire tutto lo spazio bianco con niente.

esempio

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

Questo sostituisce semplicemente lo spazio (ascii), non tutti gli spazi bianchi? Vedere la discussione qui http://msdn.microsoft.com/en-us/library/t97s7bs3.aspx –

+0

-1: non è possibile avere un letterale di carattere vuoto. – Richard

+0

@Paul Discussione dove? Quel collegamento riguarda String.Trim – w69rdy

0

Ho trovato questo metodo ottimo per fare le cose come la costruzione di una classe che utilizza una proprietà calcolata a prendere diciamo un "productName" e stripping gli spazi per creare un URL che sarà uguale un immagine che usa il nome prodotto senza spazi. Per esempio:

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"; } 
      } 
     } 
    } 

Quindi, in questa risposta ho usato un metodo molto simile a quello w69rdy, ma usato in un esempio, in più ho usato string.Empty al posto di "". E anche se dopo .Net 2.0 non c'è differenza, trovo molto più facile leggere e capire per gli altri che potrebbero aver bisogno di leggere il mio codice. Preferisco anche questo perché a volte mi perdo in tutte le citazioni che potrei avere in un blocco di codice.

1

Se si desidera mantenere uno spazio tra ogni parola. questo dovrebbe farlo ..

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(); 

    } 

rimuoverà la stringa tra la stringa quindi se l'ingresso è

var s ="c   sharp"; 
result will be "c sharp"; 
+2

'string.Join (" ", s.Split (nuovo char [0], StringSplitOptions.RemoveEmptyEntries) .ToList(). Select (w => w. Trim())); ' –

1
//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); 
} 
+0

Per stringhe più lunghe, è preferibile usare' StringBuilder' piuttosto che '+ =', poiché non ricrea l'oggetto String con ogni concatenazione. –

Problemi correlati