2012-12-19 76 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>

相关问题