亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

大神求救?。?! 為什么一點擊“等于”就報錯

?FATAL EXCEPTION: main java.lang.StringIndexOutOfBoundsException: length=5; regionStart=2; regionLength=-3 at cn.lll.MainActivity.getResult(MainActivity.java:162) at cn.ll.MainActivity.onClick(MainActivity.java:140)

我的代碼如下:

case R.id.btn_equal:
?? ??? ??? ?getResult();
?? ??? ??? ?break;
?? ??? ?}
?? ?}
//獲取計算結果,調用getresult方法
?? ?private void getResult() {
?? ??? ?String exp=et_showview.getText().toString();
?? ??? ?//空或者沒有東西,直接返回
?? ??? ?if (exp==null||exp.equals("") ) {
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?if (!exp.contains(" ")) {
?? ??? ??? ?return;
?? ??? ?}
?? ??? ?if (clear_flag) {
?? ??? ??? ?clear_flag=false;
?? ??? ??? ?return;?? ??? ?
?? ??? ?}
?? ??? ?clear_flag=true;
?? ??? ?double r=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 arg1=Double.parseDouble(s1);
?? ??? ??? ?double arg2=Double.parseDouble(s2);
?? ??? ??? ?if(op.equals("+")){
?? ??? ?????? ??? ? r= arg1+arg2;
?? ??? ??????? }else if(op.equals("-")){
?? ??? ?????? ??? ?r= arg1-arg2;
?? ??? ??????? }else if(op.equals("×")){
?? ??? ?????? ??? ? r= arg1*arg2;
?? ??? ??????? }else if(op.equals("÷")){ ?
?? ??? ??? ??? ??? if (arg2==0) {
?? ??? ??? ??? ??? ?r=0;
?? ??? ??? ??? ?}else {
?? ??? ??? ??? ??? ?r=arg1/arg2;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?et_showview.setText(String.valueOf(r));

正在回答

2 回答

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

這兩行應該是

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

0 回復 有任何疑惑可以回復我~
#1

qq_幽幽千山_0 提問者

萬分感謝!我明白了
2017-10-26 回復 有任何疑惑可以回復我~

牛皮,怪不得老是找不到問題所在

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

舉報

0/150
提交
取消
Android攻城獅的第一門課(入門篇)
  • 參與學習       312517    人
  • 解答問題       4931    個

想快速掌握Android應用開發基礎,選擇學習這門課程就對了。

進入課程

大神求救啊?。?為什么一點擊“等于”就報錯

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號