int space = t.IndexOf(' '); 这如何理解?单引号中为什么是空格?
用C#编写的计算器中的一段代码如下:
private void btnResult_Click(object sender,System.EventArgs e)
{
double r=0;
string t=textBox1.Text;
int space = t.IndexOf( ' ');
string S1=t.Substring(0,space);
char op=Convert.ToChar(t.Substring(space+1,1));
string S2=t.Substring(space+3);
double arg1=Convert.ToDouble(S1);
double arg2=Convert.ToDouble(S2);
switch(op)
{
case '+ ':
r=arg1+arg2;
break;
case '- ':
r=arg1-arg2;
break;
case '* ':
r=arg1*arg2;
break;
case '/ ':
if(arg2==0)
MessageBox.Show( "出错啦,分母不能为零哦! ");
else
r=arg1/arg2;
break;
}
textBox1.Text=r.ToString();
}
第五行的代码
int space = t.IndexOf( ' ');
这如何理解?单引号中为什么是空格?
------解决方案--------------------自己分析下代码就知道了,按代码,textBox1.Text输入格式应该是这样的
123 + 321
在第一个操作数和操作符之间,操作符和第二个操作数之间各有一个空格
string S1=t.Substring(0,space); //取第一个操作数,这里为123
char op=Convert.ToChar(t.Substring(space+1,1)); //取操作符
string S2=t.Substring(space+3);//取第二个操作数,这里是321