溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

android計(jì)算器實(shí)現(xiàn)兩位數(shù)的加減乘除

發(fā)布時(shí)間:2020-08-21 13:29:01 來(lái)源:腳本之家 閱讀:226 作者:black0man 欄目:移動(dòng)開(kāi)發(fā)

本文實(shí)例為大家分享了android計(jì)算器實(shí)現(xiàn)加減乘除的具體代碼,供大家參考,具體內(nèi)容如下

注:以下計(jì)算器只注重實(shí)現(xiàn)功能,不考慮其他BUG,只有兩位整數(shù)的算法運(yùn)算,適合新手

1、實(shí)現(xiàn)思想

將從鍵盤得到的數(shù)值放在一個(gè)字符數(shù)組中,以運(yùn)算符號(hào)(+-/)為分割點(diǎn),將兩個(gè)數(shù)值分割開(kāi),進(jìn)行算法運(yùn)算。*

2、難點(diǎn)

如何判斷是否為符號(hào)?+ - ×/
記錄符號(hào)的位置?

3、步驟:

1、得到鍵盤輸入的值
2、將值存放在一個(gè)字符數(shù)組中
3、遍歷數(shù)組中的每個(gè)數(shù),如果找到算法符號(hào),記錄下算法符號(hào)的位置。(要點(diǎn),從0開(kāi)始)
4、將算法符號(hào)前面的數(shù)放在一個(gè)定義的int型數(shù)中
5、同理
6、判斷是加減乘除的哪一個(gè)方法,然后進(jìn)行簡(jiǎn)單的運(yùn)算。

4、代碼

i:布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
 android:id="@+id/activity_main"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 android:weightSum="1"
 >

 <TextView android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:id="@+id/etResult"
 android:layout_weight="0.05"
 android:textSize="25dp"
 android:paddingTop="10dp"
 android:gravity="bottom"
 android:hint="0.0"
 />
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="vertical"
 android:layout_weight="0.8">
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal"
 android:weightSum="1">

 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="C"
 android:textSize="25dp"
 android:background="@color/colorWhite"
 android:id="@+id/btnQingchu"
 android:layout_weight="0.5" />
 <Button
 android:layout_width="235dp"
 android:layout_height="wrap_content"
 android:text="←"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:id="@+id/btnHuishan"
 android:layout_weight="0.5"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn7"
 android:text="7"
 android:textSize="25dp"
 android:layout_weight="0.25"
 />
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn8"
 android:text="8"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn9"
 android:text="9"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnChu"
 android:text="÷"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn4"
 android:text="4"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn5"
 android:text="5"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn6"
 android:text="6"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnCheng"
 android:text="×"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn1"
 android:text="1"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn2"
 android:text="2"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn3"
 android:text="3"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnJian"
 android:text="-"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btn0"
 android:text="0"
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnDian"
 android:text="."
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnDengyu"
 android:text="="
 android:textSize="25dp"
 android:layout_weight="0.25"/>
 <Button
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:id="@+id/btnJia"
 android:text="+"
 android:textSize="25dp"
 android:background="@color/colorBlue"
 android:layout_weight="0.25"/>
 </LinearLayout>
 </LinearLayout>
</LinearLayout>

ii:獲取鍵盤的值,寫監(jiān)聽(tīng)

public void getButton(){
 //獲取按鈕組件
 btn0= (Button) findViewById(R.id.btn0);
 btn1= (Button) findViewById(R.id.btn1);
 btn2= (Button) findViewById(R.id.btn2);
 btn3= (Button) findViewById(R.id.btn3);
 btn4= (Button) findViewById(R.id.btn4);
 btn5= (Button) findViewById(R.id.btn5);
 btn6= (Button) findViewById(R.id.btn6);
 btn7= (Button) findViewById(R.id.btn7);
 btn8= (Button) findViewById(R.id.btn8);
 btn9= (Button) findViewById(R.id.btn9);

 btnJia= (Button) findViewById(R.id.btnJia);
 btnJian= (Button) findViewById(R.id.btnJian);
 btnCheng= (Button) findViewById(R.id.btnCheng);
 btnChu= (Button) findViewById(R.id.btnChu);

 btnDian= (Button) findViewById(R.id.btnDian);
 btnDengyu= (Button) findViewById(R.id.btnDengyu);
 btnQingchu= (Button) findViewById(R.id.btnQingchu);
 btnHuishan= (Button) findViewById(R.id.btnHuishan);

 etGet = (TextView) findViewById(R.id.etResult);
 //綁定監(jiān)聽(tīng)
 btn0.setOnClickListener(this);
 btn1.setOnClickListener(this);
 btn2.setOnClickListener(this);
 btn3.setOnClickListener(this);
 btn4.setOnClickListener(this);
 btn5.setOnClickListener(this);
 btn6.setOnClickListener(this);
 btn7.setOnClickListener(this);
 btn8.setOnClickListener(this);
 btn9.setOnClickListener(this);

 btnJia.setOnClickListener(this);
 btnJian.setOnClickListener(this);
 btnCheng.setOnClickListener(this);
 btnChu.setOnClickListener(this);

 btnDian.setOnClickListener(this);
 btnDengyu.setOnClickListener(this);
 btnQingchu.setOnClickListener(this);
 btnHuishan.setOnClickListener(this);
 }

iii:綁定按鈕

 @Override
 public void onClick(View v) {
 str = etGet.getText().toString();
 switch (v.getId()){
 //數(shù)字按鈕
 case R.id.btn0:
 case R.id.btn1:
 case R.id.btn2:
 case R.id.btn3:
 case R.id.btn4:
 case R.id.btn5:
 case R.id.btn6:
 case R.id.btn7:
 case R.id.btn8:
 case R.id.btn9:
 /* if (b_Clean)
 {
  b_Clean =false;
  etGet.setText("");
 }*/
 etGet.setText(str+((Button)v).getText());
 break;
 //運(yùn)算按鈕
 case R.id.btnJia:
 case R.id.btnJian:
 case R.id.btnCheng:
 case R.id.btnChu:
 case R.id.btnDian:
 /* if (b_Clean)
 {
  b_Clean =false;
  etGet.setText("");
 }*/
 etGet.setText(str+((Button)v).getText());
 break;
 //清除按鈕
 case R.id.btnQingchu:
 /* if (b_Clean)
 {
  b_Clean =false;
  etGet.setText("");
 }*/
 etGet.setText("");
 break;
 case R.id.btnDengyu:
 getResult();
 break;
 case R.id.btnHuishan:
 str=etGet.getText().toString();
 try {
  etGet.setText(str.substring(0,str.length()-1));
 }
 catch (Exception e){
  etGet.setText("");
 }

 break;

 }
 }

iV:算法功能實(shí)現(xiàn)

public void getResult(){
 str = etGet.getText().toString();
 strArray = new String[str.length()]; //將得到的字符串放在一個(gè)字符數(shù)組里
 //System.out.println("str"+str);
 int n=0;
 for(int i=0; i<strArray.length;i++){
 strArray[i] = str.substring(i, i+1); //遍歷數(shù)組的每個(gè)元素
 //System.out.print(strArray[i]);
 if(strArray[i].equals("+")||strArray[i].equals("-") //滿足條件
  ||strArray[i].equals("×")||strArray[i].equals("÷"))
 {
 n= i; //記錄符號(hào)存在的位置
 }
 }
 int num1 = Integer.parseInt(str.substring(0,n)); //得到前一串?dāng)?shù)
 String caculate = str.substring(n,n+1); //得到算法符號(hào),加減乘除
 int num2 = Integer.parseInt(str.substring(n+1)); //得到后一串?dāng)?shù)

 if (caculate.equals("+"))
 {
 Inputresult = num1+num2;
 }
 else if (caculate.equals("-"))
 {
 Inputresult = num1-num2;
 }
 else if (caculate.equals("×"))
 {
 Inputresult = num1*num2;
 }
 else if (caculate.equals("÷"))
 {
 if (num2==0)
 {
 return ;
 }
 Inputresult = num1/num2;
 }
 etGet.setText(num1+caculate+num2+"="+Inputresult);
 }

更多計(jì)算器功能實(shí)現(xiàn),請(qǐng)點(diǎn)擊專題: 計(jì)算器功能匯總 進(jìn)行學(xué)習(xí)

關(guān)于Android計(jì)算器功能的實(shí)現(xiàn),查看專題:Android計(jì)算器 進(jìn)行學(xué)習(xí)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI