문제
다른사람풀이
class Solution {
public int solution(String s) {
String[] strDigit = new String[]{"zero","one","two","three","four","five","six","seven","eight","nine"};
String[] digits = new String[]{"0","1","2","3","4","5","6","7","8","9"};
for (int i =0; i<10; i++){
s = s.replace(strDigit[i],digits[i]);
}
return Integer.valueOf(s);
}
}
풀이법
replace 함수를 사용하여 단어단위로 교체할수있다.
public class ReplaceAllTest{ public static void main(String[] args){ String replaceAllTest = "우리의 리플레이스의 리플레이스테스트"; System.out.println( replaceAllTest.replaceAll("리플레이스","replaceAll") ); // [출력] : 우리의 replaceAll의 replaceAll테스트 // replace 함수를 사용해도 동일한 결과가 나옴 } }
replace() 와 replaceAll()은 위처럼 사용법은 동일하나 replaceAll()은 아래처럼 정규표현식 사용이 가능하다는 차이가 있다.
public class AllTest{ public static void main(String[] args){ String allTest = "aaabbbvccacfgdracabtghd"; System.out.println( allTest.replace("ab","0") ); // aa0bbvccacfgdrac0tghd System.out.println( allTest.replaceAll("[ab]","0") ); // 000000vcc0cfgdr0c00tghd } }
replaceFirst()는 처음 나오는 단어만 바꿔주는 함수이다.
String replaceFirstTest = "우리의 리플레이스의 리플레이스테스트"; System.out.println( replaceFirstTest.replaceFirst("리플레이스","replaceFirst") ); // 우리의 replaceFirst의 리플레이스테스트