将字符串中的字符转换为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)。
你的循环逻辑没有任何意义。
你正在循环输入字符串的长度?如果总是只有两个数为什么要循环呢?
为什么不试试呢:
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