2012-12-19 74 views
5

我在一個簡單的轉換器,其文本到另一種語言的工作,如何跳過' r n'字符串

假設我有兩個文本框,並在第一個框中輸入單詞Index,按轉換按鈕。
我將取代這個فہرستIndex在烏爾都語語言替代文本,但如果你輸入的字index並給出了一些空間或給出了一些收益,然後我得到的文本框的文本在C#這樣Index \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n現在我怎麼能有一個問題我擺脫這一點,我總是想得到簡單的Index
感謝答案,請隨時免費的,如果您有任何問題發表評論

回答

9

嘗試使用Trim方法如果新線只在開始的結束:

input = input.Trim(); 

您可以使用Replace,如果要在字符串中的任何刪除新行:

// Replace line break with spaces 
input = input.Replace("\r\n", " "); 
// (Optionally) Combine consecutive spaces to one space (probalby not most efficient but should work) 
while (input.Contains(" ")) { input = input.Replace(" ", " "); } 

如果你想防止換行符徹底,最TextBox控件有一個屬性如MultiLine或類似的,當設置時,防止輸入多行。

+0

如果你有一個像'索引索引'這樣的詞,trim不起作用 – Smartboy

+0

@Smartboy好的,那麼Replace會更好。更新了答案。 – Botz3000

+0

但是如果你有'index \ r \ nindex',輸出將是'indexindex',我不確定翻譯是否正常。 – Steve

5

這應該足以去除空白字符由Char.IsWhiteSpace(空格,換行等)

string wordToTranslate = textBox1.Text.Trim(); 

然而定義,如果你的文本中包含多個單詞,那麼你使用應該使用不同的方法

string[] words = textBox1.Text.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries); 
foreach(string wordToTranslate in words) 
    ExecTranslation(wordToTranslate); 

Split用char [] null作爲分隔符允許將每個空格標識爲有效的字詞分隔符

5

input.Replace(Environment.NewLine, string.Empty).Replace(" ", string.Empty);

用戶Replace刪除字符串「內部」中的字符。 Trim只在字符串的開頭和結尾刪除字符。

4

添加要忽略的字符串的所有字符:

var cleanChars = text.Where(c => !"\n\r".Contains(c)); 
string cleanText = new string(cleanChars.ToArray()); 

做是因爲字符串實現IEnumerable<char>

相關問題