需要用到的知识点:
1、String的api函数;
2、数组
3、for()循环
代码详解:
Scanner scan = new Scanner(System.in);
String input = scan.next();
double sum = 0;
//判断是否包含"-"号
if (input.contains("-")) {
input = input.replace("-", "+-");
}
//排除连"++"号的影响,如5-3++-3
String[] ss = input.split("\\+");
for (int k = 0; k < ss.length; k++) {
if (ss[k].equals("")) {
ss[k] = "0";
}
}
//剥离符号,进行运算
for (int i = 0; i < ss.length; i++) {
//判断是否同时具有"*"和"/"
if (ss[i].contains("*") && ss[i].contains("/")) {
double sum1 = 1;
String[] sss = ss[i].split("\\*");
for (int l = 0; l < sss.length; l++) {
//判断是否有"/",如果有继续剥离
if (sss[l].contains("/")) {
String[] ssss = sss[l].split("\\/");
double sum2 = Integer.parseInt(ssss[0]);
for (int h = 1; h < ssss.length; h++) {
sum2 = sum2 / Integer.parseInt(ssss[h]);
}
sum1 = sum1 * sum2;
} else {
sum1 = sum1 * Integer.parseInt(sss[l]);
}
}
sum += sum1;
}
//判断是否只有"*"
else if (ss[i].contains("*") && !ss[i].contains("/")) {
String[] sss = ss[i].split("\\*");
double sum1 = 1;
for (int l = 0; l < sss.length; l++) {
sum1 = sum1 * Integer.parseInt(sss[l]);
}
sum += sum1;
}
//判断是否只有"/"
else if (ss[i].contains("/") && !ss[i].contains("*")) {
String[] sss = ss[i].split("\\/");
double sum1 = Integer.parseInt(sss[0]);
for (int l = 1; l < sss.length; l++) {
sum1 = sum1 / Integer.parseInt(sss[l]);
}
sum += sum1;
}
//只包含数字
else {
sum += Integer.parseInt(ss[i]);
}
}
//输出总和
System.out.println(sum);
本文出自 “技术创造梦想” 博客,请务必保留此出处http://lnjava.blog.51cto.com/9008531/1741074
原文:http://lnjava.blog.51cto.com/9008531/1741074