2012-03-31 1 views
1

Ich habe die Zeichenfolge bereits geteilt (das war Victoria Adelaide Mary/Wettin/"aber jetzt, dass ich es geteilt habe, muss ich sicherstellen, dass dort nur ein Leerzeichen jeder Seite jedes Element im Array.Stellen Sie sicher, dass jedes Element in String-Array nur ein Leerzeichen auf beiden Seiten hat C#

   detail = "Victoria Adelaide Mary/Wettin/"; 
       name = ""; 
       string[] detailArray = detail.Split('/'); 

       foreach (string s in detailArray) 
       { 
        name += s; 
       } 

Das Wort „Wettin“ zum Beispiel ist kein Platz auf beiden Seiten hat. Was würden Sie vorschlagen, ich

?

Danke :)

ps. Eingang -> "Wettin" (das ist eines der Elemente des Arrays Ausgang -> "Wettin"

in voller

  • "Victoria" wird "Victoria" (wie es das erste Element des Array ist)
  • "Adelaide" wird "Adelaide"
  • "Mary" wird zu "Mary"
  • "Wettin" wird "Wettin" (wie es das letzte Element des Arrays ist

Ich brauche einen Platz am Ende des ersten Elements des Arrays, Raum zu Beginn des letzten Elements des Arrays und stellen Sie sicher, jedes Wort in der Mitte einen Raum nur zwischen ihnen

+1

Es ist wirklich nicht klar, was Sie versuchen zu erreichen. Bitte posten Sie einige Beispiele für die Eingabe und die gewünschte Ausgabe. –

Antwort

2

Um alle Namen in separa zu bekommen te Elemente in Array, können Sie verwenden:

string[] detailArray = detail.Replace('/', ' ').Split(' '); 

es, um gemeinsam in name Variable:

 string detail = "Victoria Adelaide Mary/Wettin/"; 
     string name = ""; 

     string[] detailArray = detail.Replace('/', ' ').Split(' '); 

     foreach (string s in detailArray) 
     { 
      name += s + " "; 
     } 
     // trim last space character 
     name = name.TrimEnd(' '); 
+0

das hat funktioniert: D danke :) – user1290653

+1

es ist nicht effizient, Strings mit Verkettung (das + Symbol) zu erstellen, wenn die Zeichenfolgen zur Laufzeit nicht bekannt sind. Außerdem ist die Replace/Split-Kombination im ersten Codeblock redundant, Sie können auch einen einzelnen Split mit einem Schrägstrich verwenden. – Sprague

+0

Ich weiß. Aber für Namen finde ich es in Ordnung, denn es gibt nur wenige Artikel. StringBuilder scheint für mich eine schwere Maschine zu sein. – Gondy

1
var name = string.Format(" {0} ", string.Join(" ", detail.Split('/'))); 

hat http://msdn.microsoft.com/en-us/library/57a79xd0.aspx - String.Join

(Hinzufügen der unten nach Frage geschlossen, wie ich denke, es ist ein bisschen effizient)

string name = string.Format(" {0} ", string.Replace('/', ' '));

Verwandte Themen