5

我有类似的字符串"1\t2\r\n3\t4",我想将它们拆分为:

new string[][] { { 1, 2 }, { 3, 4 } }

基本上,它应该被分成几行,每一行都应该被分成制表符。我尝试使用以下方法,但它不起作用:

string toParse = "1\t2\r\n3\t4";

string[][] parsed = toParse
    .Split(new string[] {@"\r\n"}, StringSplitOptions.None)
    .Select(s => s.Split('\t'))
    .ToArray();
  1. 我的方法有什么问题?为什么我没有得到想要的结果?
  2. 您将如何使用 LINQ 解决这个问题?
4

2 回答 2

7

去除 '@':

string toParse = "1\t2\r\n3\t4";

string[][] parsed = toParse
    .Split(new string[] {"\r\n"}, StringSplitOptions.None)
    .Select(s => s.Split('\t'))
    .ToArray();

@ 使字符串包含反斜杠,而不是它们所代表的字符。

于 2013-02-10T21:19:51.730 回答
3
string str = "1\t2\r\n3\t4";
Int32[][] result = str.Split(new[] { Environment.NewLine }, StringSplitOptions.None)
    .Select(s => s.Split('\t').Select(s2 => int.Parse(s2)).ToArray())
    .ToArray();

演示

于 2013-02-10T21:23:06.080 回答