문자열 대체할 때 replaceAll(대체할 내용, 바뀔내용)
을 쓰면 됨
answer = my_string.replaceAll(letter, "");
my_string
문자열에서 letter
문자를 빈 문자로 대체하는 코드이다.
짝수, 홀수 개수 담은 배열을 반환하는 문제에서
public class EvenAndOdd {
public int[] solution(int[] num_list) {
int[] answer = new int[2];
int even = 0;
int odd = 0;
for (int num : num_list){
if ( num % 2 == 0 ) {
even++;
} else odd++;
}
answer[0] = even;
answer[1] = odd;
return answer;
}
}
이렇게 했는데 다른 사람의 풀이를 보니까
int[] answer = new int[2];
for(int i = 0; i < num_list.length; i++)
answer[num_list[i] % 2]++;
return answer;
처음엔 이걸 보고 뭔소린가 했는데...
짝수는 나머지가 0이고 홀수는 1이니까 그 자체를 인덱스로 활용하는 ..아주 기발한 방법이다!
IllegalArgumentException으로만 예외처리를 작성해서 그걸로 exceptionHandler를 만들고 돌렸는데
회원가입 시 형식에 어긋나면 발생하는 예외는 따로 처리를 안했줬다.
그래서 에러 내용을 보고 MethodArgumentNotValidException으로 예외처리를 해줬다.
그랬더니 에러메세지가 굉장히 지저분하게 나오는 것
그래서 다시 에러내용을 봤다.
setErrorMessage(e.getFieldError().getDefaultMessage())
field에 default message가 눈에 들어와서 인텔리제이에 찾아보니까 저렇게 만들어줬다.
처리를 하니까 깔끔하게 메세지까지 떴다.