将字符串中的字符转换为c#中的整型,将两个字符串中的数字对转换为整数对

本文关键字:转换 字符串 两个 数字 整数 整型 字符 | 更新日期: 2023-09-27 18:15:50

我想从c#中获取两个字符串输入,然后根据它们在数组中的位置将它们转换为整数,然后将它们相加。我的代码如下:

        string a = Console.ReadLine();
        string b = Console.ReadLine();
        int i,c,d,j;
        for (i=a.Length-1;i>=0;i--)
        {
            c = Convert.ToInt32(a[i]);
            d = Convert.ToInt32(b[i]);
            j = c + d;
            Console.WriteLine("{0} ",j);
            Console.ReadKey();
        }

此代码显示错误的输出,例如输入"12 21"为"99 99"。我想加c+d,然后把和代入j,最后我想写一个代码来解决大和问题。我哪里出错了?

预期:对于字符串"12"answers"34"输出为"46"(1+3和2+4)。

将字符串中的字符转换为c#中的整型,将两个字符串中的数字对转换为整数对

你的循环逻辑没有任何意义。

你正在循环输入字符串的长度?如果总是只有两个数为什么要循环呢?

为什么不试试呢:

string a = Console.ReadLine();
string b = Console.ReadLine();
int c = Int.Parse(a);
int d = Int.Parse(b);
int j = c + d

当你使用像a[i]这样的字符串(数组)时,你没有得到你想要的…

引用字符串的方式是问题所在。即使"a"是一个字符串…当你引用它的时候,比如c = Convert.ToInt32(a[i]);, a[i]会返回别的东西。你想要得到a[i]的值。

c = Convert.ToInt32(a[i].ToString());
d = Convert.ToInt32(b[i].ToString());

循环没有任何意义,因为您需要将其解析为整数。在您的代码中,变量c和d获取字母的ASCII值,而不是尝试

int c=Int.Parse(a);
int d=Int.Parse(b);

除了首先将a[i]和b[i]转换为字符串(ToString方法)外,您还应该使用Int32。TryParse。它可以防止以后出现意外的异常。

一个基本的实现是:

int num;

bool result = Int32.TryParse(a[i].ToString(), out num);

if (result)//操作

else//其他操作

见:https://msdn.microsoft.com/en-us/library/f02979c7 (v = vs.110) . aspx