java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数相关的知识,希望对你有一定的参考价值。
public class Solution {
public static void main(String[] args) {
String[] input = { "5", "4+20*3", "20*3+4", "20+20+20+4", "4*4*4" };
for (String test : input)
System.out.printf("%s = %d%n", test, eval(test));
}
private static int eval(String input) {
int sum = 0;
int multiplication = 1;
String currentNumber = "";
if (input.matches("\\d+"))
return Integer.parseInt(input);
for (int i = 0; i < input.length(); i++) {
char currentChar = input.charAt(i);
switch (currentChar) {
case '+':
sum += multiplication * Integer.parseInt(currentNumber);
multiplication = 1;
currentNumber = "";
break;
case '*':
multiplication *= Integer.parseInt(currentNumber);
currentNumber = "";
break;
default:
currentNumber += currentChar;
break;
}
}
return sum += multiplication * Integer.parseInt(currentNumber);
}
}
以上是关于java 给定一个算术表达式的字符串;其中只包含两个运算符:'+','*',编写一个计算表达式的函数的主要内容,如果未能解决你的问题,请参考以下文章
洛谷 P1981 表达式求值
在Java中,设计一个算法,判断一个算术表达式中的括号是不是配对。
刷过一题之NOIP2013表达式求值
2013表达式求值
1354括弧匹配检验
2括弧匹配检验