繁体   English   中英

如何将多行文本框中的文本放入一个字符串中?

[英]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.Replaceregex.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM