다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
import java.util.*;
class Solution {
public int solution(String s) {
Map<String, Integer> map = new HashMap<>();
map.put("zero", 0);
map.put("one", 1);
map.put("two", 2);
map.put("three", 3);
map.put("four", 4);
map.put("five", 5);
map.put("six", 6);
map.put("seven", 7);
map.put("eight", 8);
map.put("nine", 9);
StringBuilder sb = new StringBuilder();
StringBuilder temp = new StringBuilder();
for(char ch : s.toCharArray()){
if(Character.isDigit(ch)){
sb.append(ch);
}else{
temp.append(ch);
if(map.containsKey(temp.toString())){
sb.append(map.get(temp.toString()));
temp.setLength(0);
}
}
}
return Integer.parseInt(sb.toString());
}
}
class Solution {
public int solution(String s) {
String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int i = 0; i < strArr.length; i++) {
s = s.replaceAll(strArr[i], Integer.toString(i));
}
return Integer.parseInt(s);
}
}
: 복잡하게 map을 사용하지 않아도 되서 좋았다고 생각한다.