2016-06-10 4 views
-1

ich einen String-Wert aus einer API, und es gibt eine Menge von nutzlosen Leerzeilen:Wie soll ich alle leeren Zeilen aus einer Zeichenfolge in C# entfernen?

bla bla bla 


bla 

bla bla bla 

Ich mag die leeren Zeilen entfernen, um dieses Ergebnis zu erhalten:

bla bla bla 
bla 
bla bla bla 

Wie kann ich vorgehen ?

+0

Mögliches Duplikat [wie aus der Liste leere Zeichenfolge zu entfernen, dann doppelte Werte aus einer Liste entfernen] (http://stackoverflow.com/questions/11867070/ how-to-remove-empty-strings-from-Liste-then-remove-duplicate-values-from-a-list) – Mimouni

Antwort

1

Angenommen, Sie mit neuer Linie ('\n') begrenzt einen String haben, könnten Sie die Zeichenfolge Split und Entferne leere Zeilen.

var lines = inputString.Split('\n') 
      .Where(x=> !string.IsNullOrEmpty(x)) 
      .ToArray(); 

inputString = string.Join(@"\n",lines); 
0

Mit Regex können Sie Regex.Replace (string. @ "^ \ S? \ N", @ "") löschen, um alle Leerzeilen (oder Zeilen, die nur Leerzeichen enthalten) zu löschen.

Ansonsten können Sie String verwenden, um die Linien zu durchlaufen und nur mit Linien etwas zu tun, die nicht leer oder Leerzeichen sind:

public static string ReturnNoBlankLinks(string emptyLineString) 
     { 
      using (StringReader sR = new StringReader(emptyLineString)) 
      { 
       string curLine = String.Empty; 
       while ((curLine = sR.ReadLine()) != null) 
       { 
        if (!String.IsNullOrWhiteSpace(curLine)) 
        { 
         doSomething(); 
        } 
       } 
      } 
     } 
0

noch ein andere Lösung:

string apiString = "bla bla bla\n\n\nbla\r\n\r\nbla bla bla"; 

    char[] lineFeedChars = {'\n', '\r'}; 

    string[] cleanStringArray = apiString.Split(lineFeedChars, StringSplitOptions.RemoveEmptyEntries); 

    string cleanString = String.Join(Environment.NewLine, cleanStringArray); 
Verwandte Themen