如何在不知道字符串长度的情况下从字符串中取出最后第三个字符?

问题描述 投票:0回答:1

我有一个字符串 123*7?8。 符号在哪里?意味着它可以有任何数字。符号*表示任何最大长度为三个字符的数字或什么都不能代替它。

我正在做某种数字组合。

问题是我不知道字符串的长度,因为有“*”。事实上,我需要一个索引为-3的字符。

这是我写的代码。但我不明白如何使最后第三个字符成为数字 7。

for (int i = 1000000; i < 1000000000; i++)
{
    string s = Convert.ToString(i);

    if (s[0] == '1' && s[1] == '2' && s[2] == '3' && s.Last() == '8')
    {
        if (i % 23 == 0)
        {
            Console.WriteLine(s);
        }
    }
}
c#
1个回答
0
投票

您正在使用 numbers,让我们处理 numbers,我们想要

123....7?8
   ^  ^ ^
   |  | digit
 middle digits 

我们可以这样做:

for (int middle = 0; middle < 1000; ++middle) {
    int number = 123;

    number = number * (middle < 10 ? 10 : middle < 100 ? 100 : 1000) + middle;

    for (int digit = 0; digit < 10; ++digit) {
        int result = ((number * 10 + 7) * 10 + digit) * 10 + 8; 

        Console.WriteLine(result); 
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.