如何在字符串中跳过`\ r \ n`

时间:2012-12-19 11:41:17

标签: c#

我正在研究一种简单的转换器,它将文本转换为另一种语言,

假设我有两个文本框,在第一个框中输入单词Index,然后按转换按钮。
我会用这个فہرست替代你的文字替换为Index的乌尔都语,但是如果你输入单词index并给出一些空格或给出一些回报我就会遇到问题c#中的文本框就像这个Index \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n现在我怎么能摆脱这个我想要简单Index。 感谢您的回答,如果您有任何疑问,请随时发表评论

4 个答案:

答案 0 :(得分: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或类似的属性,设置后会阻止输入多行。

答案 1 :(得分: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作为分隔符,允许将每个空格标识为有效的单词分隔符

答案 2 :(得分:5)

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

用户Replace从字符串的“内部”删除字符。 Trim仅在字符串的开头和结尾删除字符。

答案 3 :(得分:4)

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

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

这是有效的,因为字符串实现了IEnumerable<char>