为了账号安全,请及时绑定邮箱和手机立即绑定

按下等号打印不出来,求解。。。


private void getResult(){

String exp = et_input.getText().toString();

if(exp==null||exp.equals("")){

return;

}

if(!exp.contains("")){

return;

}

if(clear_flag){

clear_flag = false;

return;

}

clear_flag = true;

  double result =0;

  int spase = exp.indexOf("");

String s1 = exp.substring(0, spase);//运算符前面的字符串

String op = exp.substring(spase+1,spase+2);//运算符

String s2 = exp.substring(spase+3);//运算符后面的字符串

if(!s1.equals("")&&!s2.equals("")){           //第一种运算情况

double d1 = Double.parseDouble(s1);

double d2 = Double.parseDouble(s2);

if(op.equals("+")){

result = d1+d2;

}else if(op.equals("-")){

result = d1-d2;

}else if(op.equals("×")){

result = d1*d2;

}else if(op.equals("÷")){

if(d2==0){

result = 0;

}else{

result = d1/d2;

}

}

if(!s1.contains(".")&&!s2.contains(".")){

int r = (int) result;

et_input.setText(r+"");

}else{

et_input.setText(result+"");

}

}else if(!s1.equals("")&&s2.equals("")){     //第二种运算情况

et_input.setText(exp);

}else if(s1.equals("")&&!s2.equals("")){     //第三种运算情况

double d2 = Double.parseDouble(s2);

if(op.equals("+")){

result = 0+d2;

}else if(op.equals("-")){

result = 0-d2;

}else if(op.equals("×")){

result = 0;

}else if(op.equals("÷")){

result = 0;

}

if(!s2.contains(".")){

int r = (int) result;

et_input.setText(r+"");

}else{

et_input.setText(result+"");

}

}else{ //第四种运算

et_input.setText("");

}

}


正在回答

1 回答

int spase = exp.indexOf("");后面的双引号中是有空格的,实测有效,因为这地方判断的就是有没有空格。

--------------------------------

case R.id.btn_plus:
case R.id.btn_minus:
case R.id.btn_multiply:
case R.id.btn_divide:
   if (clear_flag) {
       clear_flag = false;
       str = "";
       et_input.setText("");
   }
   et_input.setText(str + " " + ((Button) v).getText() + " ");
   break;

前面这个地方点击运算符+-*/的时候设置了运算符左右都是有空格的,后面就是根据这个判断不同的输入情况。

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android攻城狮的第一门课(入门篇)
  • 参与学习       312584    人
  • 解答问题       4633    个

想快速掌握Android应用开发基础,选择学习这门课程就对了。

进入课程

按下等号打印不出来,求解。。。

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信