读取文本文件并通过删除分隔符拆分文本文件并将其存储到2个数组中

时间:2018-04-04 20:49:53

标签: c# winforms

我想阅读文本文件并通过删除分隔符拆分文本文件并将其存储到两个1d阵列中(一个用于电影名称,另一个用于收入

我的文本文件示例:

Jurassic World=11734562.56
Black Panther@4352749.21
The Revenant}7452893.21
Trainwreck{1547892.45

2 个答案:

答案 0 :(得分:0)

可能是这段代码,解决你的问题。 Split函数获取char并使用这些值进行解析。 Delimeters将删除您的结果。如果您的所有文字都是这样的(名字和分隔符和收入),您甚至可以选择索引作为电影名称和奇数索引作为收入。

string allText = @"Jurassic World=11734562.56
Black Panther@4352749.21
The Revenant}7452893.21
Trainwreck{1547892.45";

string[] splitStrings = allText.Split('\n', '=', '{', '}', '@');

string[] movies = splitStrings.Where((s, i) => i % 2 == 0).ToArray();
string[] revenues = splitStrings.Where((s, i) => i % 2 == 1).ToArray();

答案 1 :(得分:0)

另一种剥离不需要的字符的解决方案。

string val = @" Jurassic World=11734562.56
                Black Panther@4352749.21
                The Revenant}7452893.21
                Trainwreck{1547892.45";

string[] lines = val.Split('\r');

string[] movieNameArr = new string[lines.Length];
decimal[] amountsArr = new decimal[lines.Length];

for (int i = 0; i < lines.Length; i++)
{
    string[] split = lines[i].Split(new Char[] { '=', '@', '}', '{' });

    // replace new line or space chars with empty string 
    split[0] = Regex.Replace(split[0], @" |\n", string.Empty);

    movieNameArr[i] = split[0];
    amountsArr[i] = decimal.Parse(split[1]);
}

Console.WriteLine("Movie arr: [{0}]", string.Join(", ", movieNameArr));
Console.WriteLine("Amounts arr: [{0}]", string.Join(", ", amountsArr));

Console.ReadKey();