우선 for 반복문을 통하여 my_string 문자열의 문자 하나하나를 charAt 메소드로 c라는 변수로 가져옵니다.
그 문자 c가 모음인 a, e, i, o, u에 해당하지 않을 경우에는 result에 추가해주도록 합니다.
즉, 모음은 무시하기 때문에 모음을 삭제한 것과 동일한 효과가 있습니다.
최종적으로 result를 반환해줄 때, StringBuilder 타입이므로 toString으로 문자열 형변환을 해줍니다.
● StringBuilder result = new StringBuilder();
for (int i = 0; i < my_string.length(); i++) { char c = my_string.charAt(i); if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u') { result.append(c); } } return result.toString(); } }
4) 코드
class Solution {
public String solution(String my_string) {
if(1> my_string.length() || my_string.length() > 1000){
throw new IllegalArgumentException("제한사항을 확인하세요");
}
StringBuilder result = new StringBuilder();
for (int i = 0; i < my_string.length(); i++) {
char c = my_string.charAt(i);
if (c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u') {
result.append(c);
}
}
return result.toString();
}
}
5) 느낀점
비슷한 문제를 2-3번 푼 것 같으나, 이번에 풀 때 charAt 메소드가 떠오르지 않아 막혔습니다.
그리고 문제를 풀 방법이 두가지가 떠올랐는데
1) StringBuilder append를 사용할지
2) String "" 빈문자열로 만들고 char을 +해줄지
이 중에서는 첫번째 방법을 선택했습니다.
복습의 중요성... charAt을 잊어버리니 바로 문제를 해결하지 못한 제모습을 반성합니다.
toCharArray도 쓸 수 있었지만!! 아직은 스스로가 이해가 잘 되는 방식에 치우치고 있는 것 같습니다.