永发信息网

Java 24点如何加入括号运算?

答案:1  悬赏:60  手机版
解决时间 2021-04-26 00:08
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];
}
这是整个运算过程,但是输入()就会判断成错误函数,到底要怎么解决?
最佳答案

什么意思a ???你可以首先检测下有没有括号 有的话 先运算括号中间的 在算外面的


我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么空间音乐播放不出?
灌篮高手第2部那里可以看?
谁有小学三年级暑假作业?
为什么人活着这么累累
谁有"雅思MM"的个人资料和照片?
现在索爱W810C多少钱
我打开龙之谷安装程序 但是打开后又不弹出来
对青春美好回忆的诗词,求30年初中同学聚会一
中央五台直播完NBA比赛后,播的比赛集锦中,
电脑自动重启是什么原因
急!我的卡巴斯基为什么一直更新不了?
自考本科段
结婚当天按绍兴这边的习俗我爸爸妈妈应该给我
用别人的卡提供给公司发工资可以吗
起英文名,一定要谐音(心儿)
推荐资讯
怎样看待在不同工作环境下工作的人
不值得怎么不在旋舞里了
金山毒霸漏洞修补
石家庄市公安局新华分局北站派出所地址有知道
8月15日的加成卡损失怎么补?!
我是89年3月6日出生地女孩我的塔罗牌是什么
在揭阳哪家干洗店最信得过
1/15:1/20:1/25的最简整数比为啥是5:4:怎么简
宁波市新的中医院有什么公交车可以直达?
半夜钟声到客船上一句,梧桐更兼细雨,到黄昏,
求全国所有化学师范系的院校或大学的名字
有几个女孩喜欢我!而我对她们都没感觉.她们每
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?