private boolean isNumber(String str) {
if (str.equals("0") || str.equals("1") ||
str.equals("2") || str.equals("3") ||
str.equals("4") || str.equals("5") ||
str.equals("6") || str.equals("7") ||
str.equals("8") || str.equals("9")) {
return true;
}
else {
return false;
}
}
private boolean isOperator(String str) {
if (str.equals("+") || str.equals("-") ||
str.equals("*") || str.equals("/") ||
str.equals("(") || str.equals(")")) {
return true;
}
else {
return false;
}
}
public int calString(String str) {
int[] nums = new int[4];
String[] ops = new String[4];
for (int i = 0; i < 4; i++) {
ops[i] = "";
}
String tempStr, s = "";
int numNo = 0, opNo = 0;
for (int i = 0; i < str.length(); i++) {
tempStr = str.substring(i, i + 1);
if (isNumber(tempStr)) {
s += tempStr;
}
else if (isOperator(tempStr)) {
if (numNo >= 4 || opNo >= 3) {
return -1;
}
try {
nums[numNo] = Integer.parseInt(s);
}
catch (Exception e) {
}
s = "";
numNo++;
ops[opNo] = tempStr;
opNo++;
}
else {
return -1;
}
}
if (s.length() != 0 && numNo == 3) {
try {
nums[numNo] = Integer.parseInt(s);
}
catch (Exception e) {
return -1;
}
}
else {
return -1;
}
int tempStatus[] = new int[4];
for (int i = 0; i < 4; i++) {
tempStatus[i] = m_nStatus[i];
}
for (int i = 0; i < 4; i++) {
int j = 0;
boolean existed = false;
while (j < 4 && !existed) {
if (tempStatus[j] == nums[i]) {
tempStatus[j] = -1;
existed = true;
}
j++;
}
if (!existed) {
return -1;
}
}
int result = nums[0];
for (int i = 0; i < 3; i++) {
if (ops[i].equals("+")) {
result += nums[i + 1];
}
else if (ops[i].equals("-")) {
result -= nums[i + 1];
}
else if (ops[i].equals("*")) {
result *= nums[i + 1];
}
else if (ops[i].equals("/")) {
result /= nums[i + 1];
}
这是整个运算过程,但是输入()就会判断成错误函数,到底要怎么解决?
Java 24点如何加入括号运算?
答案:1 悬赏:60 手机版
解决时间 2021-04-26 00:08
- 提问者网友:爱唱彩虹
- 2021-04-25 05:26
最佳答案
- 五星知识达人网友:洎扰庸人
- 2021-04-25 05:57
什么意思a ???你可以首先检测下有没有括号 有的话 先运算括号中间的 在算外面的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯