gpt4 book ai didi

c# - 将 string[] 转换为 Int[] 而不丢失前导零

转载 作者:可可西里 更新时间:2023-11-01 08:02:53 25 4
gpt4 key购买 nike

输入:

string param = "1100,1110,0110,0001";

输出:

int[] matrix = new[]
{
1,1,0,0,
1,1,1,0,
0,1,1,0,
0,0,0,1
};

我做了什么?

首先,我将字符串拆分为字符串[]。

string[] resultantArray = param.Split(',');

创建了一个方法,我在其中传递了我的字符串 []。

var intArray = toIntArray(resultantArray);

static private int[] toIntArray(string[] strArray)
{
int[] intArray = new int[strArray.Length];
for (int i = 0; i < strArray.Length; i++)
{
intArray[i] = int.Parse(strArray[i]);
}

return intArray;
}

问题?

我尝试了很多SO的解决方案,但没有一个对我有帮助。

最后得到没有前导零的数组。

最佳答案

  • 确定所有数字:.Where(char.IsDigit)
  • 将选定的 char-digits 转换为 integer:.Select(x => x-'0')(这不是与 int.ParseConvert.ToInt32 一样漂亮,但速度超快)

代码:

string param = "1100,1110,0110,0001";
int[] result = param.Where(char.IsDigit).Select(x => x-'0').ToArray();

正如 CodesInChaos 评论的那样,如果存在 other,这可能会导致错误输入中的数字类型,例如泰文数字字符: '๐' '๑' '๒' '๓' '๔' '๕' '๖' '๗' '๘' '๙' 其中 char.IsDigit == true - 如果你需要处理这样的特殊情况你只能在结果中允许 01 .Where("01".Contains)

关于c# - 将 string[] 转换为 Int[] 而不丢失前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43142179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com