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

本文关键字:串并 字符串 转换 int 字符 何拆分 拆分 | 更新日期: 2023-09-27 18:24:42

基本上说我已经使用了这个:

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

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

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

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

如何将它们拆分,使名称位于一个数组中,并将数字转换为int数组?基本上将数字和名称分开。

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

在每个项上循环,按空格分隔,使用第一个值作为键,然后使用其余值创建int数组。

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值,或者使用字典以外的其他方法来保留解析后的值。

你可以看到这个关于字典区分大小写的SO线程(它们不知道)。

对于字符数组:

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

对于数字数组

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

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

  • 一种使用方式是每行