
숫자 문자열과 영단어
https://school.programmers.co.kr/learn/courses/30/lessons/81301
먼저 문자열을 숫자로 바꿔야하기에 예시로 제공하는 것을 배열로 만들어 그 것과 비교하고,
문자형 Character.isAlphabetic(c) 이면 문자를 더해서 배열과 비교하여 배열의 값을 숫자로 바꾸고, 숫자이면 그대로 숫자로 표현.
마지막에 Integer로 변환하여 출력.
코드 간결하게 짜려고 찾아보면서 replace처리로 해서 바로 해결 하는 것을 보고, 더 쉽게 할 수 있는데, 너무 어렵게 생각했구나.
class Solution {
public int solution(String s) {
int answer = 0;
String[] str = {"zero", "one", "two", "three",
"four", "five", "six", "seven", "eight", "nine"};
String str_s = "";
String result = "";
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if ((Character.isAlphabetic(c))) {
str_s += c;
for (int j = 0; j < str.length; j++) {
if (str_s.equals(str[j])) {
result += Integer.toString(j);
str_s="";
}
}
} else {
result += c;
str_s="";
}
}
answer = Integer.parseInt(result);
return answer;
}
}
replace를 활용하여 더 간결한 코드
public int solution(String s) {
String[] str = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < str.length; i++) {
s = s.replace(str[i], String.valueOf(i));
}
int answer = Integer.parseInt(s);
System.out.println(answer);
return answer;
}
}