Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将6位数字解析为6整数数组_C#_Java_Parsing_Int - Fatal编程技术网

C# 将6位数字解析为6整数数组

C# 将6位数字解析为6整数数组,c#,java,parsing,int,C#,Java,Parsing,Int,我希望能够解析一个六位数的数字,并将每个字符放入一个数组中,例如:738593->d[1]=7,d[2]=3。d[3]=8……等 我从Java中找到了一行代码,它完全符合我的要求,但我正在四处寻找一个与C等价的代码。有什么想法吗?我能想到的最简单的事情就是把它转换成一个字符: char[] val = s.toCharArray(); 因为char数据类型只是整数,所以这应该不是问题,而且我认为您可以: int[] val = s.toCharArray(); 但是我不能完全确定,所以没有关

我希望能够解析一个六位数的数字,并将每个字符放入一个数组中,例如:738593->d[1]=7,d[2]=3。d[3]=8……等


我从Java中找到了一行代码,它完全符合我的要求,但我正在四处寻找一个与C等价的代码。有什么想法吗?

我能想到的最简单的事情就是把它转换成一个字符:

char[] val = s.toCharArray();
因为char数据类型只是整数,所以这应该不是问题,而且我认为您可以:

int[] val = s.toCharArray();

但是我不能完全确定,所以没有关于这一点的承诺:

我能想到的最简单的事情就是将它转换成一个字符:

char[] val = s.toCharArray();
因为char数据类型只是整数,所以这应该不是问题,而且我认为您可以:

int[] val = s.toCharArray();
但我不能完全肯定这一点,所以没有关于这一点的承诺:

试试这个

int x=654321;
string[] stringarray=x.toString().split('');
试试这个

int x=654321;
string[] stringarray=x.toString().split('');
尝试:

这里要做的是迭代字符串中的每个字符,将它们转换为整数流IEnumerable,然后将该流转换为数组。这需要C3.0和LINQ

或者,您可以尝试:

int[] d = s.Select(c => int.Parse(c.ToString()).ToArray();
如果传入的字符串不是数字字符串,则会引发异常,但可能会对字符串中的每个字符造成性能损失,因为会生成另一个字符串

这两种方法都适用于任意大小的数字字符串*

*当然可以存储在内存中。

试试:

这里要做的是迭代字符串中的每个字符,将它们转换为整数流IEnumerable,然后将该流转换为数组。这需要C3.0和LINQ

或者,您可以尝试:

int[] d = s.Select(c => int.Parse(c.ToString()).ToArray();
如果传入的字符串不是数字字符串,则会引发异常,但可能会对字符串中的每个字符造成性能损失,因为会生成另一个字符串

这两种方法都适用于任意大小的数字字符串*


*当然可以存储在内存中。

在c中,这将是:

private void button2_Click(object sender, EventArgs e)
{
    int[] d = new int[10];
    d1 = int.Parse(s[0].ToString());
    d3 = int.Parse(s[1].ToString());
    d2 = int.Parse(s[2].ToString());
    ...
}

如果没有.ToString,它可能会工作,但我不确定。

在c中,这将是:

private void button2_Click(object sender, EventArgs e)
{
    int[] d = new int[10];
    d1 = int.Parse(s[0].ToString());
    d3 = int.Parse(s[1].ToString());
    d2 = int.Parse(s[2].ToString());
    ...
}
int[] d = new int[6];
for(int i=0; i<6; i++){
    d[i] = Int32.Parse(s[i]);
}
它可能在没有.ToString的情况下工作,但我不确定

int[] d = new int[6];
for(int i=0; i<6; i++){
    d[i] = Int32.Parse(s[i]);
}
这就是在c中如何将字符串解析为int


这就是在c中将字符串解析为整数的方法

如果直接转换,可能会得到asii值,请尝试以下操作:

char[] val = 738593.ToString().ToCharArray().ToArray();

其中to字符串可能避免将每个数字转换为asii值

如果直接转换,可能会得到asii值,请尝试以下方法:

char[] val = 738593.ToString().ToCharArray().ToArray();
static public int[] StringToIntArray(string input)
{
    List<int> tempList = new List<int>();
    foreach (char c in input)
    {
        if (c >= '0' && c <= '9')
        {
            tempList.Add(c - '0');
        }
    }
    return tempList.ToArray();
}
其中to字符串可能避免将每个数字转换为asii值

static public int[] StringToIntArray(string input)
{
    List<int> tempList = new List<int>();
    foreach (char c in input)
    {
        if (c >= '0' && c <= '9')
        {
            tempList.Add(c - '0');
        }
    }
    return tempList.ToArray();
}
请注意,这将完全忽略任何非数字。因此,如果您的输入是867ASDF5309,int数组将显示为{8,6,7,5,3,0,9}


请注意,这将完全忽略任何非数字。因此,如果您的输入是867ASDF5309,则int数组将显示为{8,6,7,5,3,0,9}

不,这不起作用,即使它起作用,也不会满足问题的要求。这个问题要求的是{7,3,8,5,9,3},而不是{'7',3',8',5',9',3'}。注意,不仅类型不同,数值也不同。嗯,是的,我真是太蠢了。让落选的选票欢呼吧。不,那是行不通的,即使这样,也不会满足问题的要求。这个问题要求的是{7,3,8,5,9,3},而不是{'7',3',8',5',9',3'}。注意,不仅类型不同,数值也不同。嗯,是的,我真是太蠢了。他希望结果是一个整数数组,所以你需要将结果转换为一个整数数组,所以你需要将结果转换为一个整数数组。这仍然比必要的复杂,但与其他答案不同,你的答案实际上是正确的。。。除了你从问题中复制的内容之外,d1、d3和d2是不正确的,而不是d[0]、d[1]和d[2]。无论如何,循环可能是比单独列出每个项目更好的选择。我只是翻译了他从Java获得的内容,以便他能够理解两种语言之间的差异。是的,我知道。但他只是在找cequivalent@Marshal:对于您编写的所有s[x]语句,您的输入字符串都很小,或者由于同样的原因,d太小。看一看我的答案,它不依赖于输入字符串的大小。它仍然比必要的更复杂,但与其他答案不同,你的答案实际上是正确的。。。除了你从问题中复制的内容之外,d1、d3和d2是不正确的,而不是d[0]、d[1]和d[2]。无论如何,循环可能是比单独列出每个项目更好的选择。我只是翻译了他从Java获得的内容,以便他能够理解两种语言之间的差异。是的,我知道。但他只是在找cequivalent@Marshal:对于您编写的所有s[x]语句,您的输入字符串都很小,或者由于同样的原因,d太小。有
请看我的答案,它不依赖于输入字符串的大小。与Lee的答案相同的问题:int'0'不是0。是的,刚刚发现了它,正如你提到的那样对它进行了更改。现在我觉得很好。与问题中的不同,如果存在非数字,则不会引发异常。如果输入值已经过验证,那就无关紧要了。再次指出,你发现了这一点,并在同一时间编辑了问题;P我只是打字不够快:pYou不需要强制转换:c-“0”单独起作用,因为char被认为是一种数字类型。与Lee的回答相同的问题是:int'0不是0。是的,只是发现了它,就像你提到的那样对它进行了更改。现在我觉得很好。与问题中的不同,如果存在非数字,则不会引发异常。如果输入值已经过验证,那就无关紧要了。再次指出,你发现了这一点,并在同一时间编辑了问题;P我只是打字不够快:pYou不需要强制转换:c-“0”单独起作用,因为char被认为是数字类型。一行代码几乎不是“解析”或“算法”。一行代码几乎不是“解析”或“算法”。