91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2022-05-29
  • 語言: Java
  • 標簽: 計算器??

資源簡介

一個用Java實現的計算器小功能, 可以支持加減乘數, 以及括號運算

資源截圖

代碼片段和文件信息

import?java.util.ArrayList;
import?java.util.List;
import?java.util.StringTokenizer;


public?class?CalcDemo?{

/**
?*?@param?args
?*/
public?static?void?main(String[]?args)?{
System.out.println(exec(“-8*(((-2+4)+3)/((-1-5)*-2)-5)“));

}

/**
?*?
?*?@param?exp
?*????????????帶括號的四則表達式
?*?@return?運算結果
?*/
public?static?double?exec(String?exp)?{

//?有括號
//?-8*(((-2+4)+3)/((-1-5)*-2)-5)


int?leftIndex?=?exp.lastIndexOf(‘(‘);?//?16

if?(leftIndex?==?-1)?{
//?沒有括號
//?System.out.println(“calc“?+?exp);
return?calc(exp);
}?else?{
//?如果有括弧,調用exec
//?System.out.println(“exec“?+?exp);
//?先找最里面的(位置?再找對應的)位置

//?(-1-5)*-2)-5)?21
int?rightIndex?=?exp.substring(leftIndex).indexOf(‘)‘)?+?leftIndex;

//?去獨立的表達式,運算?calc(-1-5)
double?res?=?calc(exp.substring(leftIndex?+?1?rightIndex));
//?重新組織表達式
exp?=?exp.substring(0?leftIndex)?+?res
+?exp.substring(rightIndex?+?1);
//?-8*(((-2+4)+3)/(?-6?*-2)-5)
return?exec(exp);
}
//?如果沒有括弧?直接調用calc

}

/**
?*?
?*?@param?exp
?*????????????不帶括號的四則表達式
?*?@return?運算結果
?*/
public?static?double?calc(String?exp)?{
//?1?.?獲取所有四則運算的數字
List?numbers?=?sliptNumbers(exp);
//?2.?獲取所有四則運算的操作符號
List?ops?=?sliptOps(exp);
//?3.?先乘車運算
//?遍歷運算符中的*和/
for?(int?i?=?0;?i? //?*?/
//?獲取運算符(不移除)
char?op?=?ops.get(i);

//?如果是?*?或者?/,?從運算符的容器中移除,同是從數字容器中到對應該運算符位置的兩個數字(移除數據,后面所有數據往前順序移動)
if?(op?==?‘*‘?||?op?==?‘/‘)?{
//?從運算符的容器中移除
ops.remove(i);//?移除當前位置

//?從數字容器中獲取對應該運算符位置的兩個數字(移除)
double?d1?=?numbers.remove(i);
double?d2?=?numbers.remove(i);

//?運算
d1?=?op?==?‘*‘???d1?*?d2?:?d1?/?d2;

//?把運算結果插入到數字容器中的i位置
numbers.add(i?d1);//?插入到i的位置?原來從i位置一直到最后的數據,都要往后瞬移一位
//?numbers.set(i?d1);//設置i位置上的數據為d1其余不變
i--;//?移除后,后面所有運算符往前移動,為了保證下一個運算符不被遺漏,所以i--
}//?end?if?(op?==?‘*‘?||?op?==?‘/‘)?{

}//?end?for?(int?i?=?0?;?i?
//?4.?再加減運算
while?(!ops.isEmpt

評論

共有 條評論