1

我一直试图在 .NET CF 中拆分字符串,但没有成功。如果我有一个像这样的字符串:

你好

那里

世界

然后我希望每个单词都存储在一个字符串数组中,这样我就可以将它们单独放在我的数据网格单元格中。

不幸的是,这段代码我似乎没有删除新行:

string text = _scanResult; //Scan result contains the Hello There World string
string[] lines = text.Split(new Char[] {'\n','\r');
for (int x = 0; x < lines.Length; x++)
{
    dt.Rows.Add(lines[x]);
}
dataGrid1.DataSource = dt;
4

3 回答 3

2

改为使用Environment.NewLine,并使用StringSplitOptions.RemoveEmptyEntries

string[] lines = text.Split(new string[] {Environment.NewLine}, 
                            StringSplitOptions.RemoveEmptyEntries);
于 2012-11-09T14:58:49.400 回答
0

好吧,因为在 .NET Compact Framework 中的 String.Split 中只接受字符作为参数。

我所要做的就是将新行替换为“\n”字符。

这是一些将来可能会遇到相同问题的人的代码。

string text = stringWithNewLines;
text = text.Replace(Environment.NewLine,"\n");
string[] lines = text.Split(new Char[] { '\n' });
for (int x = 0; x < lines.Length; x++)
{  
    if (!String.IsNullOrEmpty(lines[x]))
    {
    dt.Rows.Add(lines[x]); //Add each string to datatable rows for use in datagrid
    }
 }
于 2012-11-09T15:14:46.470 回答
0

这是一个非常简单的版本:

var _scanResult = "foo\r\nbar\r\n";

var lines = System.Text.RegularExpressions.Regex.Split(_scanResult, "\r\n")
            .Where(l => !string.IsNullOrEmpty(l));
于 2012-11-09T21:42:51.157 回答