https://programmers.co.kr/learn/courses/30/lessons/81301
class Solution {
public int solution(String s) {
int answer = 0;
StringBuffer answerStr = new StringBuffer("");
StringBuffer str = new StringBuffer("");
for(int i=0;i<s.length();i++){
if(s.charAt(i)>='0'&&s.charAt(i)<='9'){
answerStr.append(String.valueOf(s.charAt(i)));
continue;
}
str.append(s.charAt(i));
if(match(str.toString())){
answerStr.append(String.valueOf(transfer(str.toString())));
str= new StringBuffer("");
}
}
answer = Integer.valueOf(answerStr.toString());
return answer;
}
public boolean match(String s){
boolean res = false;
if(s.equals("zero")){
res=true;
}
else if(s.equals("one")){
res=true;
}
else if(s.equals("two")){
res=true;
}
else if(s.equals("three")){
res=true;
}
else if(s.equals("four")){
res=true;
}
else if(s.equals("five")){
res=true;
}
else if(s.equals("six")){
res=true;
}
else if(s.equals("seven")){
res=true;
}
else if(s.equals("eight")){
res=true;
}
else if(s.equals("nine")){
res=true;
}
return res;
}
public int transfer(String s){
int num = -1;
if(s.equals("zero")){
num=0;
}
else if(s.equals("one")){
num=1;
}
else if(s.equals("two")){
num=2;
}
else if(s.equals("three")){
num=3;
}
else if(s.equals("four")){
num=4;
}
else if(s.equals("five")){
num=5;
}
else if(s.equals("six")){
num=6;
}
else if(s.equals("seven")){
num=7;
}
else if(s.equals("eight")){
num=8;
}
else if(s.equals("nine")){
num=9;
}
return num;
}
}
문자열을 대체할 경우 String의 replace 함수와 replaceAll 함수를 잘 사용해보자
그럼 위의 코드는 아래처럼 확 줄 것이다.
replace(바꿀녀석,바꿔질녀석)String[] alpha = {"zero","one",.....} for(int i =0;i<alpha.length;i++){ s.replaceAll(alpha[i],i); }