2017-05-24 5 views
3

Ich möchte Benutzereingaben nehmen, dann trennen Sie die Zeichenfolge nach jeder Periode. Dann möchte ich jeden Satz in eine eigene Zeile in einem Textfeld in Visual Studio setzen.Ich möchte eine Zeichenfolge nach einer Periode aufteilen und diesen Satz auf eine separate Zeile setzen

Ich weiß, wie die Sätze in einem Array gespeichert werden, und jeden Satz in jede andere Zeile einfügen, aber wenn ich renne, ist das Ergebnis für jeden Buchstaben, den ich tippe, system.string[].

string input = TextEditor.Text; 
string[] tokens = input.Split('.'); 
Output.AppendText(Environment.NewLine); 
Output.Text += tokens; 

Ich bin ziemlich sicher, dass es von den output.text = token; kommt, aber ich weiß nicht, was das zu ersetzen. Irgendeine Idee?

Antwort

2

Sie sollten einfach string.Join

string input = TextEditor.Text; 
string[] tokens = input.Split('.'); 
Output.Text = string.Join(Environment.NewLine, tokens); 

Sie verwenden auch Ihr Ziel innerhalb einer einzigen Zeile erreichen

Output.Text = string.Join(Environment.NewLine, TextEditor.Text.Split('.')); 

oder verwenden String.Replace mit (nicht sicher, ob es schneller ist)

Output.Text = TextEditor.Text.Replace(".", Environment.NewLine)); 

Ihr aktueller Code schlägt fehl, weil Sie das Array, nicht die einzelnen Zeichenfolgenelemente hinzufügen des Arrays. Stattdessen verknüpft string.Join die einzelnen Elemente des Arrays mit dem als ersten Parameter angegebenen Trennzeichen.

Beachten Sie jedoch, dass zur Anzeige mehrerer Textzeilen Ihr Textfeld mit genügend Höhe und mit der Eigenschaft Multilinie auf True gesetzt sein muss.

+0

wow danke! aber ich habe eine Zusatzfrage. Ich will es auch so, dass in der Eingabe, wenn Sie die nächste Zeile drücken (Zurück) wie mache ich es so, dass es keine leere Zeile in der Ausgabe verlassen? –

+2

Bitte posten Sie eine neue Frage. Dies wird Ihnen mehr Aufmerksamkeit auf Ihr neues spezifisches Problem geben. – Steve

+1

ok. Aber alles in allem vielen Dank, du warst eine tolle Hilfe! –

Verwandte Themen