输入:
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;
}
问题?
我尝试了很多解决办法,但没有一个能帮到我。
结果是数组没有前导零。
最佳答案
确定所有数字:.Where(char.IsDigit)
将所选的char
-数字转换为integer
:.Select(x => x-'0')
(这不像int.Parse
或Convert.ToInt32
那样漂亮,但速度非常快)
代码:
string param = "1100,1110,0110,0001";
int[] result = param.Where(char.IsDigit).Select(x => x-'0').ToArray();
正如codesinchaos所说,如果输入中有“AA>类型的数字,如泰语数字字符:‘{’‘‘’’‘’‘’’‘’’‘’’,在
char.IsDigit == true
中-如果您需要处理这种特殊情况,则只能允许0
和1
在您的结果.Where("01".Contains)
中,这可能导致错误。关于c# - 将string []转换为Int []而不会丢失前导零,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43142179/