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