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

时间:2014-04-04 16:06:18

标签: c# arrays for-loop

我正在尝试解决有关输入一串数字并检查数字中的第三个数字是否为" 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循环中遇到错误,因为为了使它正常工作,从控制台输入的字符串应该与&#34; i&#34; INT。因此,我在这个案子中寻求帮助。如何在不需要输入100个字符的情况下创建长度为100的字符串?

4 个答案:

答案 0 :(得分:3)

使用String.Length属性:

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

或者只是代替循环outnum[2] == '7'(记住 - 索引从零开始)。

答案 1 :(得分:1)

您可以使用以下内容:

input[2]=="7"

为了检查字符串的第三个字符(我称之为input)是否为7。

答案 2 :(得分:0)

只需使用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个插槽似乎有点过分) 请注意,我已将List的索引更改为2而不是3,因为数组始终在索引0处开始,因此,使用索引2检索第三个数字。

答案 3 :(得分:0)

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

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