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

本文关键字:数字 打印 字符串 | 更新日期: 2023-09-27 17:56:34

我正在尝试解决有关输入一串数字并检查数字中的第三位数字是否为"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 的字符串?

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

使用String.Length属性:

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

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

你可以使用这样的东西:

input[2]=="7"

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

只需使用 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,因为数组始终从索引零开始,因此,使用索引 2 检索第三个数字。

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

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