[英]How can I put text from a multi-line text box into one string?
我面临一个问题。 场景是我有一个多行文本框,我想将所有文本放入一个字符串中, 而没有任何新行。 这是我目前所拥有的:
string[] values = tbxValueList.Text.Split('\n');
foreach (string value in values)
{
if (value != "" && value != " " && value != null && value != "|")
{
valueList += value;
}
}
问题是,无论我尝试什么和做什么,字符串中总会有换行符(至少我认为呢?),所以不会得到:
“ valuevaluevalue”
我得到:
“值
值
值”。
我什至尝试用string.Replace
和regex.Replace
替换,但是可惜没有用。 请指教。
此致,
凯文·范·赞登
新行必须为“ \\ r \\ n”。 更好使用的Environment.NewLine
。
但是,代码效率低下,您正在创建许多不必要的字符串和不必要的数组。 只需使用:
tbxValueList.Text.Replace(Environment.NewLine, String.Empty);
另一方面,如果您发现自己在字符串上多次使用+=
运算符,则可能应该使用StringBuilder
。 这是因为字符串是不可变的 。
请注意,根据平台的不同,新行最多可以包含两个字符。
您应该同时替换CR /回车符(ASCII 13)和LF /换行符(ASCII 10)。
我不会像David所建议的那样依赖本地化数据(除非那是您的意图)。 如果要从其他环境(例如,来自Windows客户端的数据库)获取文本字符串怎么办?
我会用:
tbxValueList.Text.Replace((Char)13,"").Replace((Char)10,"");
这将替换所有出现的两个字符,而与顺序无关。
尝试这个
tbxValueList.Text.Replace(System.Environment.NewLine, "");
也尝试这个
string[] values = tbxValueList.Text.Replace("\r\n", " ").Split(' ');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.