检查第3位的整数是否为5

Fil*_*nov 3 c# integer exception

我试图想出一个表达式来检查给定的整数,如果从右到左的第三个数字是5.我到目前为止管理的是:

string input = "5";

if (Regex.IsMatch(input[2].ToString(), "[5]"))
{
    System.Console.WriteLine("yes");
}
else
    System.Console.WriteLine("no");
Run Code Online (Sandbox Code Playgroud)

遇到了2个问题:

首先,它从左到右计数,而不是从右到左,第二个,当数字小于3位时,就像在这种情况下返回超出范围的例外.

Bat*_*eba 9

使用数字方式.如果数字大于99并且n是整数,那么使用

(n / 100) % 10 == 5
Run Code Online (Sandbox Code Playgroud)

n / 100删除最后两位数(整数除法截断)并% 10提取当前最右边的数字.检查它是否为5.

它比使用正则表达式快得多.