
가. 뺄셈을 기준으로 숫자들을 나눈다.
나. 나눈 숫자들을 순회하며 "+" 기호가 있는 부분들을 전부 더해준다.
다. 첫번째 인덱스에서 두번째 인덱스에서 끝까지 빼준다.
가. 문자열에서 연산 기호를 기준으로 나누어 문자열을 생성해야했다.
split(regex) 함수를 써서 해결했다.
참고로, regex는 정규표현식이고 +는 정규표현식 메타 문자기 때문에 \(escape)를 사용해서 다음과 같이 표현해야 했다.
String.split("\\+");
import java.util.Scanner;
public class P1541 {
public static void main(String args[]) {
int num = 0;
int sum = 0;
Scanner sc = new Scanner(System.in);
String[] req = sc.nextLine().split("-");
for (int i = 0; i < req.length; i++) {
String[] addition = req[i].split("\\+");
sum = 0;
for (String j : addition) {
sum += Integer.parseInt(j);
}
req[i] = Integer.toString(sum);
}
int res = Integer.parseInt(req[0]);
for (int i = 1; i < req.length; i++) {
res -= Integer.parseInt(req[i]);
}
System.out.println(res);
}
}
가. JAVA String 읽기
String req = Scanner.next();
next : 한단어 씩
nextstring : 한 문장씩
나. Java split(regex)
string.split is return Array
split함수는 array를 리턴한다. 그리고 regex를 기준으로 문자열을 잘라준다.
다. string -> int type casting
String a = "1234";
int num = Integer.parseInt(a);
>>>
1234
Integer.pareseInt를 사용해서 문자열을 Int Type으로 바꾼다.
라. int -> string type casting
int num = 1;
String a = Integer.toString(num)
>>>
"1"
Integer.toString를 사용해서 int를 String으로 바꾼다.
라. 정규표현식 메타 문자 +
+는 정규표현식 메타 문자이기 때문에, split같은 파라미터 정규표현식에 \\+라고 써야한다.
현재 자바가 굉장히 미숙하다. 좀 더 많은 문제들을 풀면서 문법을 익혀야겠다.