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

关于 exp.substring,不能分开exp,使equal的结果一直是空值和0;求解决


private void getResult() {

clear_flag = true;

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;

String s1 = exp.substring(0, exp.indexOf(""));

String op = exp.substring(exp.indexOf("") + 1, exp.indexOf("") + 2);

String s2 = exp.substring(exp.indexOf("") + 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(".") && op.equals("/")) {

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("1234");

}


}

这样的话会一直输出1234,为什么

正在回答

1 回答

String s1 = exp.substring(0, exp.indexOf("")); 你这不是一个空字符串吗?

你想对字符串做什么

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

举报

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

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

进入课程

关于 exp.substring,不能分开exp,使equal的结果一直是空值和0;求解决

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