숫자 문자열과 영단어(replace,replaceAll,replaceFirst) - 못품

Psj·5일 전
0

코딩테스트

목록 보기
16/30

문제


다른사람풀이

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의 리플레이스테스트
profile
Software Developer

0개의 댓글

관련 채용 정보