2017-05-28 35 views
0

所以我有代碼在每個週期後分隔輸入。然後每個句子放在不同的行上。我如何確保在輸入時如果按回車你不會跳過一行?這裏是我的代碼:如何按下回車鍵不跳過一行

string input = TextEditor.Text; 
     string[] tokens = input.Split('.'); 
     Output.Text = string.Join(Environment.NewLine, tokens); 
     if (Keyboard.IsKeyDown(Key.Enter)) // for some reason words "Keyboard" and "Key" Don't work. 
     { 
      // I don't know what to do here 
     } 

所以此刻,如果我寫道:

Hello I am a human. 
A good human 

我會得到的輸出:

Hello I am a human 

A good human 
+0

您可以通過使用'input.Replace(」全部替換 「./n」。\ (s =>!string.IsNullOrWhitespace(s))'當你加入字符串時 – Timo

+1

應該是\ n @Timo :) – hardkoded

+0

:)分開......或者你做了'tokens.Where該死的。我更新了評論 – Timo

回答

1

您可以通過替換出現的所有您進行預處理輸入字符串「\ n」「」 (當線以點結束時,這會有效地移除所有換行符)。

input.Replace(".\n", ".").Split('.') 

或者,可以通過刪除所有的字符串形成與純空白(新線,標籤,空白)陣列後處理的標記。

Output.Text = string.Join(Environment.NewLine, tokens.Where(s => !string.IsNullOrWhiteSpace(s))); 

更新

如果你是以下.NET 4.0,你可以做

Output.Text = string.Join(Environment.NewLine, tokens.Where(s => s != "\n" && s != "\r\n"))); 
+0

當我這樣做時,我在IsNullOrWhitespace處得到一個錯誤。它說:「字符串不包含IsNullOrWhitespace的定義」 –

+0

@DrummingAce您使用哪種版本的.Net? string.IsNullOrWhitespace附帶.Net 4.0。 https://msdn.microsoft.com/en-us/library/system.string.isnullorwhitespace(v=vs.110).aspx – Timo

+0

我不確定,但我確實使用.net 4.something的一個版本。哪一個與視覺工作室2015年是一個我使用 –

0

您必須刪除換行符。與嘗試用更換Environment.NewLine的String.Empty

+0

,它並不真正起作用,因爲我仍然需要它,就好像當我放置一個句號時,字符串的其餘部分將放入一個新行。 –

相關問題