输入:
string param = "1100,1110,0110,0001";
Run Code Online (Sandbox Code Playgroud)
输出:
int[] matrix = new[]
{
1,1,0,0,
1,1,1,0,
0,1,1,0,
0,0,0,1
};
Run Code Online (Sandbox Code Playgroud)
我做了什么?
首先,我将字符串拆分为字符串[].
string[] resultantArray = param.Split(',');
Run Code Online (Sandbox Code Playgroud)
创建了一个方法,我传递了我的字符串[].
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;
}
Run Code Online (Sandbox Code Playgroud)
问题?
我尝试了许多SO的解决方案,但没有一个能帮助我.
结束没有前导零的数组.
fub*_*ubo 19
.Where(char.IsDigit) char-digits为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();
Run Code Online (Sandbox Code Playgroud)
正如CodesInChaos评论的那样,如果输入中存在其他类型的数字,例如泰语数字字符,则可能会导致错误:' 0''1''2''3''4''5''6''7 ' "8""9",其中char.IsDigit == true-如果你需要处理这种特殊情况下,您可以只允许0并1在结果.Where("01".Contains)
您还可以删除逗号并使用Linq按字符顺序转换结果.
string param = "1100,1110,0110,0001";
int[] result = param.Replace(",", "").Select(c => (int)Char.GetNumericValue(c)).ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2176 次 |
| 最近记录: |