如何拆分字符串并转换为int

时间:2015-11-26 19:40:44

标签: c# arrays string int

基本上我可以说我用过这个:

string[] result = File.ReadAllText("C:\\file.txt");

.txt文件中包含以下单词/值(区分大小写):

Zack 2 5 5
Ben 5 3 4
Dom 2 4 6 

目前我知道读取的内容将存储在字符串数组中,它包含名称和数字。

如何拆分它们以便名称在一个数组中并且数字转换为int数组?基本上将数字和名称分开。

2 个答案:

答案 0 :(得分:0)

循环遍历每个项目,按空格分割,使用第一个值作为键,然后使用其余值创建整数数组。

string[] result = { "Zack 2 5 5", "Ben 5 3 4", "Dom 2 4 6" };
var lookup = result.ToDictionary(
    key => key.Split(' ').First(), // first is name, ignore rest
    ints => ints.Split(' ')
        .Skip(1) // skip the name, ints are the rest
        .Select(i => int.Parse(i))
        .ToArray());
foreach (var kvp in lookup)
    Console.WriteLine(kvp.Key + " - " + string.Join(",", kvp.Value));

输出:

Zack - 2,5,5
Ben - 5,3,4
Dom - 2,4,6

我使用Dictionary作为生成列表。这假设result数组中的每个项都有唯一的名称值。如果存在重复项,则需要将其修改为附加新的int值或使用除字典之外的其他内容来保留已解析的值。

您可以看到this SO thread关于字典的区分大小写(它们不是)。

答案 1 :(得分:0)

对于字符数组:

string charsArray = new String(result.ToCharArray().Where(c => Char.IsLetter(c)).ToArray());

对于数字数组;

string NumbersArray = new String(result.ToCharArray().Where(c => Char.IsDigit(c)).ToArray());

决定何时以及如何使用它们。祝你好运

  • 一种使用方式是每行。