이 문제는 '-'로 문자열을 한 번 나눈 후, 나눈 문자열을 한 번더 '+'로 나누어 +끼리 모두 더한 후 - 연산을 실행하면 된다.
String 문자열을 '+' 기호로 나누고 싶을 때,
java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 +
위와 같은 오류가 발생했다.
이 오류는 '+' 가 특별한 의미로 쓰이기 때문이므로 '\+'로 바꿔줘야 한다.
'+' 기호 말고도 '*' 과 '^' 으로 나눌 때도 마찬가지이다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String[] strArr = str.split("-");
int answer = 0;
for (String s : strArr) {
if (s == strArr[0]) {
answer += findSum(s);
} else {
answer -= findSum(s);
}
}
System.out.println(answer);
}
private static int findSum(String s) {
String[] num = s.split("\\+");
int sum = 0;
for (String n : num) {
sum += Integer.parseInt(n);
}
return sum;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s[] = br.readLine().split("-");
int result = 0;
for (int i = 0; i < s.length; i++) {
if (i == 0) {
result = findSum(s[i]);
} else {
result -= findSum(s[i]);
}
}
System.out.println(result);
}
private static int findSum(String s) {
int sum = 0;
String ss[] = s.split("\\+");
for (int i = 0; i < ss.length; i++) {
sum += Integer.parseInt(ss[i]);
}
return sum;
}
}