Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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# 如何更好地将字符转换为int,保持数字值而不是ASCII值?_C# - Fatal编程技术网

C# 如何更好地将字符转换为int,保持数字值而不是ASCII值?

C# 如何更好地将字符转换为int,保持数字值而不是ASCII值?,c#,C#,我刚刚为c#basics study中的样例考试编写了一个代码(c#) 尽管我能够正确地写入并接收所有点,但我对将字符ASCII值转换为所需int值的方式并不十分满意。 我要求以更好的方式表达以下代码: 使用制度 namespace MultiplyTable { class Program { static void Main(string[] args) { //Input: string inp

我刚刚为c#basics study中的样例考试编写了一个代码(c#)

尽管我能够正确地写入并接收所有点,但我对将字符ASCII值转换为所需int值的方式并不十分满意。 我要求以更好的方式表达以下代码:

使用制度

namespace MultiplyTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //Input:
            string inputNumber = Console.ReadLine();

            //Logic:

            int firstNumber = 0;
            int secondNumber = 0;
            int thirdNumber = 0;

            for (int i = 0; i < inputNumber.Length; i++)
            {
                firstNumber = inputNumber[0] - 48;
                secondNumber = inputNumber[1] - 48;
                thirdNumber = inputNumber[2] - 48;
            }

            for (int p = 1; p <= thirdNumber; p++)
            {
                for (int j = 1; j <= secondNumber; j++)
                {
                    for (int k = 1; k <= firstNumber; k++)
                    {
                        Console.WriteLine($"{p} * {j} * {k} = {p * j * k};");
                    }
                }
            }
        }
    }
}
命名空间可倍增表
{
班级计划
{
静态void Main(字符串[]参数)
{
//输入:
字符串inputNumber=Console.ReadLine();
//逻辑:
int firstNumber=0;
int secondNumber=0;
int thirdNumber=0;
for(int i=0;i对于(int p=1;p从
0
的ASCII值中减去
foo
的ASCII值将得到数字

char foo = '2';
int bar = foo - '0';
或者只需将char转换为string,然后再转换为int:

int bar = int.Parse(foo.ToString()); 

使用谢谢!这很有帮助,我尝试过了,效果很好!谢谢你的帮助,但这是我最初使用的方式,因为“0”的ASCII值为48。我搜索的方法是Char.GetNumericValue(inputNumber[0])正如Zohar已经评论的那样,使用中的acceped答案更好,因为它还可以正确转换范围“0”…“9”之外的数字字符(如其他脚本中的数字、超级/下标数字等)。是的,但我也想展示另一种解决方案。