문제를 통해 새롭게 배운 부분 OR 중요한 부분
indexOf()
활용
ArrayList 자료구조에서 특정 문자의 인덱스를 반환하는 함수이다. 때문에 일반 배열의 인덱스를 반환하고자 할 때는 Arrays.asList()
를 사용해 List로 변환 후 사용해야 한다.
✅ 문제풀이
- 영단어를 문자열 배열에 순서대로 담는다.
replaceAll
을 통해 s
에 포함된 영단어들을 숫자로 대치한다.
- 영단어가 숫자로 대치된 값은, 문자열 배열에서 영단어의 인덱스 값과 같다.
Arrays.asList(배열).indexOf(영단어)
- 반환값이
int
이기 때문에 문자열에서 숫자로 형 변환 후 반환한다.
import java.util.Arrays;
class Solution {
public int solution(String s) {
int answer = Integer.parseInt(replaceNumber(s));
return answer;
}
public static String replaceNumber(String s) {
String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(String str : arr) {
String index = String.valueOf(Arrays.asList(arr).indexOf(str));
s = s.replaceAll(str, index);
}
return s;
}
}
![](https://velog.velcdn.com/images/p_zane/post/3ef698e8-5dc3-4a5a-96e5-9cefded86465/image.png)