- String 클래스의 substring 메소드를 활용해 문제를 해결하였다.
- 정수를 만나거나, one two three... 의 문자열을 만나면 그 문자열을 제외한 다음 문자열부터 다시 루프를 시작하도록 구현했다.
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
StringBuilder sb = new StringBuilder();
HashMap<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);
String temp = "";
int i=0;
while(s.length()>0){
if(Character.isDigit(s.charAt(i))){
sb.append(s.charAt(i));
s = s.substring(i+1);
i = 0;
} else {
temp += s.charAt(i);
if(map.containsKey(temp)){
sb.append(map.get(temp));
s = s.substring(i+1);
temp = "";
i = 0;
}
else
i++;
}
}
answer = Integer.parseInt(sb.toString());
return answer;
}
}