实现一个简单的加法器, 用户输入“数字a+数字b”(中间不能有空格),按下回车表示结束,输出这两个数字的和。
乍一看好像很简单,但是用户的输入并不是两个单独的数字,而是如“415+625”这样的一个字符串,因此需要使用一些字符串处理函数来把这两个数字剥离出来再进行相加。
代码如下:
static void Main(string[] args)
{
Console.WriteLine("请输入两个数相加,按回车键结束");
string InputStr = Console.ReadLine();
int Index = InputStr.IndexOf("+");
string NumStr1 = InputStr.Substring(0, Index);
string NumStr2 = InputStr.Substring(Index + 1);
int Num1 = int.Parse(NumStr1);
int Num2 = int.Parse(NumStr2);
int Sum = Num1 + Num2;
Console.WriteLine(InputStr + "的计算结果为" + Sum);
Console.ReadLine();
}
首先需要把用户的输入(如:415+625)存入字符串InputStr中:
string InputStr = Console.ReadLine();
然后定位“+”号的位置,采用索引值的方式:
int Index = InputStr.IndexOf("+");
找到第一个匹配项的从零开始的索引。这里还是以“415+625”为例,得到Index的值为3。这里注意,索引值是从0开始的,即字符串中第一个字符对应的索引值为0,“+”号为第四个字符,因此索引值为3。
通过Substring,即可对字符串进行分割。Substring可以输入两个参数或仅输入一个参数。若输入两个参数,第一个参数表示新字符串是从当前字符串的指定索引开始,第二个数字表示索引的长度。若仅输入一个参数,则新字符串是从当前字符串的指定索引开始一直到结束。
string NumStr1 = InputStr.Substring(0, Index);
string NumStr2 = InputStr.Substring(Index + 1);
分别采用两种方法获取一下两个数字吧。第一行代码表示从索引值0开始,即字符串中第一个字符开始,索引的长度为3,取出数字“415”。第二行代码表示从索引值4开始,即字符“+”之后的数字“6”开始,取出所有剩下的字符,即取出“625”。
接下来进行一下数据转换,加法运算和输出,就可以完成任务了。
虽然没用到但还是顺便提一下获取整个字符串的长度的方法吧。有两种:
int StrLength = InputStr.Count();
int StrLength = InputStr.Length;
以“415+625”为例,得到字符串长度为7。
这两种方法有什么区别呢?搜索了一下好像有区别但不大,就不过多关注了233。