Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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# 从字符串c打印某些数字_C#_Arrays_For Loop - Fatal编程技术网

C# 从字符串c打印某些数字

C# 从字符串c打印某些数字,c#,arrays,for-loop,C#,Arrays,For Loop,我试图解决一个关于输入一串数字并检查数字的第三个数字是否为7的问题。以下是我到目前为止的想法: string outnum; int num1; int[] num; num = new int[100]; while (true) { Console.WriteLine("Input number:"); ou

我试图解决一个关于输入一串数字并检查数字的第三个数字是否为7的问题。以下是我到目前为止的想法:

            string outnum;
            int num1;
            int[] num;
            num = new int[100];

            while (true)
        {
            Console.WriteLine("Input number:");
            outnum = Console.ReadLine();
            if (int.TryParse(outnum, out num1))
            {
                for (int i = 1; i <= 100; i++) 
                {
                    num[(int)i] = Convert.ToInt32(Convert.ToString(outnum[(int)i]));
                }

                if (num[3] == 7)
                {
                    Console.WriteLine("The third digit is 7");
                    break;
                }
                else
                {
                    Console.WriteLine("The third digit is not 7");
                    break;
                }


            }
        }
但是,我在for循环中遇到了一个错误,因为为了让它正常工作,从控制台输入的字符串应该包含与I int相同的字符。因此,在这种情况下,我请求帮助。如何在不需要输入100个字符的情况下生成长度为100的字符串?

使用属性:

  for (int i = 0; i < outnum.Length; i++) 
或者干脆不使用loop outnum[2]='7'记住-索引从零开始。

使用属性:

  for (int i = 0; i < outnum.Length; i++) 

或者干脆不使用loop outnum[2]='7'记住-索引从零开始。

您可以使用如下内容:

input[2]=="7"

为了检查我称之为输入的字符串的第三个字符是否为7。

您可以使用如下内容:

input[2]=="7"
为了检查我称之为输入的字符串的第三个字符是否为7。

仅使用LinQ

if (int.TryParse(outnum, out num1))
{
    List<int> numbers = outNum.ToCharArray()
                        .Select(x => Convert.ToInt32(x.ToString()))
                        .ToList();
    if(numbers[2] == 7)
        Console.WriteLine("Is 7");
    else
        Console.WriteLine("Not 7");
}
不需要保留固定长度的数组,但是对于整数来说,100个插槽似乎有点过多。 请注意,我已将列表的索引改为2而不是3,因为数组总是从索引0开始,因此,使用索引2检索第三个数字。

仅使用LinQ

if (int.TryParse(outnum, out num1))
{
    List<int> numbers = outNum.ToCharArray()
                        .Select(x => Convert.ToInt32(x.ToString()))
                        .ToList();
    if(numbers[2] == 7)
        Console.WriteLine("Is 7");
    else
        Console.WriteLine("Not 7");
}
不需要保留固定长度的数组,但是对于整数来说,100个插槽似乎有点过多。
请注意,我已将列表的索引更改为2而不是3,因为数组总是从索引0开始,因此,使用索引2检索第三个数字。

如果您只关心C数字中从0开始的第三个字符

string values="fg7gdhjdhd";
string val=values.Substring(2,1);
int number=Convert.ToInt32(val);

如果您只关心C中的第三个字符,那么数字从0开始

string values="fg7gdhjdhd";
string val=values.Substring(2,1);
int number=Convert.ToInt32(val);

你到底为什么要砍掉100次?似乎您应该只循环outnum的长度。另外,因为C默认是一种基于零的索引语言,所以您可能应该从0开始循环,然后向上循环,而不是1。i、 e,对于int i=0;i<100;我知道你为什么要砍掉100次?似乎您应该只循环outnum的长度。另外,因为C默认是一种基于零的索引语言,所以您可能应该从0开始循环,然后向上循环,而不是1。i、 e,对于int i=0;i<100;我++