C# 如何跳过字符串中的“\r\n”

C# 如何跳过字符串中的“\r\n”,c#,C#,我正在研究一个简单的转换器,它可以将文本转换成另一种语言 假设我有两个文本框,在第一个框中输入单词Index,然后按下转换按钮。 我将用这个乌尔都语的索引的替代品替换你的文本,但如果你输入单词索引,并给出一些空格或返回值,我会遇到一个问题,然后我会用c获得该文本框的文本,像这样索引\r\n\r\n\r\n\r\n\r\n\r\n\r\n现在我如何摆脱我希望得到简单的索引。 感谢您的回答,如果您有任何问题,请随时发表意见如果新行仅位于开头的末尾,请尝试使用Trim方法: input = input

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

假设我有两个文本框,在第一个框中输入单词
Index
,然后按下转换按钮。
我将用这个乌尔都语的
索引的替代品
替换你的文本,但如果你输入单词
索引
,并给出一些空格或返回值,我会遇到一个问题,然后我会用c获得该文本框的文本,像这样
索引\r\n\r\n\r\n\r\n\r\n\r\n\r\n
现在我如何摆脱我希望得到简单的
索引


感谢您的回答,如果您有任何问题,请随时发表意见

如果新行仅位于开头的末尾,请尝试使用
Trim
方法:

input = input.Trim();
如果要删除字符串中任意位置的新行,可以使用:

// 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
控件都有类似于
多行
或类似的属性,设置该属性后,可以阻止输入多行

这应该足以删除所定义的空白(空格、换行符等)

但是,如果文本框包含多个单词,则应使用不同的方法

string[] words = textBox1.Text.Split((char[]) null, StringSplitOptions.RemoveEmptyEntries);
foreach(string wordToTranslate in words)
    ExecTranslation(wordToTranslate);
使用char[]null作为分隔符可以将每个空格标识为有效的单词分隔符

input.Replace(Environment.NewLine,string.Empty)。Replace(“,string.Empty)


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

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

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

这是因为字符串实现了
IEnumerable

trim不起作用。如果您有一个类似
Index-Index
@Smartboy-Ok这样的单词,那么Replace会更好。更新了答案。但是如果您有
index\r\nindex
,输出将是
indexindex
,我不确定翻译是否能正常工作。@Steve是的,没错,我将其更改为用空格替换,并(可选)将连续空格合并为一个空格。
var cleanChars = text.Where(c => !"\n\r".Contains(c));
string cleanText = new string(cleanChars.ToArray());