반응형
[Error Note][Java] Dangling meta character '+' near index 0+
애러코드
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 +
찾은 경위
백준 1541번 문제 잃어버린 괄호 풀이 중 아래 코드에서 에러 발생
String[] temp = orderOfCalculationString[i].split("+");
해결 방법
+ 앞에 \\ 추가 (* 와 ^로 나눌 때에도 동일 방법으로 해결)
String[] temp = orderOfCalculationString[i].split("\\+");
문자열을 +, *, ^ 로 split할 때에는 "\\+" 의 형식으로 입력해야한다. 이는 앞의 세 문자가 특별한 의미로 쓰이기 때문이다.
참고로 split함수는 regex 표현식을 사용한다.
전체 코드
package greedy;
//import java.util.Arrays;
import java.util.Scanner;
public class B1541 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String input = scan.next();
String [] orderOfCalculationString = input.split("-");
int [] orderOfCalculationInt = new int [orderOfCalculationString.length];
// System.out.println(input);
// System.out.println(Arrays.toString(orderOfCalculationString));
for (int i = 0; i < orderOfCalculationString.length; i++) {
String[] temp = orderOfCalculationString[i].split("\\+");
int sum = 0;
for (int j = 0; j < temp.length; j++) {
sum += Integer.parseInt(temp[j]);
}
orderOfCalculationInt[i] = sum;
}
int result = orderOfCalculationInt[0];
for (int i = 1; i < orderOfCalculationInt.length; i++) {
result -= orderOfCalculationInt[i];
}
System.out.println(result);
scan.close();
}
}
반응형
'Error Note > Java' 카테고리의 다른 글
[Error Note][Java] java.util.InputMismatchException: For input string (0) | 2023.05.07 |
---|
최근댓글