exp = exp.replaceAll("\\- ", "\\+ \\-");
boolean needToPlus = exp.contains("+");
boolean needToMinus = exp.contains("-");
boolean needToMultiply = exp.contains("*");
boolean needToPlus = exp.contains("+");
boolean needToCompound = needToMultiply && needToPlus;
boolean needMuituply = exp.contains("*");
boolean needToPlus = exp.comtains(" + ") || exp.contains(" - ");
boolean needToMultiply = exp.contains(" * ");
boolean needToPlus = exp.contains(" + ") || exp.contains(" - ");
boolean needToCompound = needToMultiply && needToPlus;
if (needToCompound) {
if (needToPlus) {
문제: 10 + 5 * 2 + 5
private static String stripOuterBracket(String exp) {
if (exp.charAt(0) == '(' && exp.charAt(exp.length() - 1) == ')'){
exp = exp.substring(1, exp.length() - 1);
}
return exp;
private static String stripOuterBracket(String exp) {
메서드의 꼴이 위와같은 이유는?
case 1.
while (exp.charAt(0) == '(' && exp.charAt(exp.length() - 1) == ')'){
exp = exp.substring(1, exp.length() - 1);
private static String stripOuterBracket(String exp) {
int outerBracketCount = 0;
while (exp.charAt(outerBracketCount) == '(' && exp.charAt(exp.length() - 1- outerBracketCount) == ')'){
outerBracketCount++;
}
if(outerBracketCount == 0){
return exp;
}
return exp.substring(outerBracketCount,exp.length() - outerBracketCount);
}
exp.substring(outerBracketCount,exp.length() - outerBracketCount
if (outerBracketCount == 0){
return exp;
}
exp = exp.trim();
exp = stripOuterBracket(exp);
if ((!exp.contains(" ")) return Integer.parseInt(exp);
String secondExp = exp.substring(splitPointIndex + 3);
char operator = exp.charAt(splitPointIndex + 2);
exp = Calc.run(firstExp) + " " + operator + " " + Calc.run(secondExp);
return Calc.run(exp);