자바 replace 와 replace All

자바 String 의 replace 와 replace All 은 srcString 의 subString 을 대체 하 는 데 사 용 됩 니 다.그러나 일부 다른 것 은 replace 의 매개 변 수 는 문자 나 문자열 이 고 replace All 의 매개 변 수 는 정규 표현 식 일 수 있 습 니 다.
public String replace (Char old,Char newChar) {
    (oldChar != newChar) {
        len = .i = -[] val = (++i < len) {
            (val[i] == oldChar) {
                }
        }
        (i < len) {
            buf[] = [len](j = j < ij++) {
                buf[j] = val[j]}
            (i < len) {
                c = val[i]buf[i] = (c == oldChar) ? newChar : ci++}
            String(buf)}
    }
    }

    원본 코드 에서 볼 수 있 듯 이 문 자 를 바 꿀 수 있 습 니 다.문자열 에 oldChar 가 존재 하면 모든 oldChar 를 new Char 로 바 꾸 고 새로운 문자열 을 되 돌려 줍 니 다.원래 문자열 은 변 하지 않 습 니 다.존재 하지 않 으 면 원래 문자열 의 인용 을 되 돌려 줍 니 다.
public String replace(CharSequence target,CharSequence replacement) {
    Pattern.(target.toString()Pattern.).matcher(
            ).replaceAll(Matcher.(replacement.toString()))}

   replace 가 문자열 을 바 꿀 때 문자열 의 시작 에서 뒤로 일치 합 니 다.예 를 들 어"aa"를"b"로 바 꾸 면"aa".repalce("aa","b")는"ab"가 아니 라"ba"로 돌아 갑 니 다.내부 에서 사용 되 는 replace All 방법 을 볼 수 있 습 니 다.target 이나 replacement 이 null 일 때 NullPointer Exception 을 보고 합 니 다.이것 은 여전히 새로운 문자열 을 되 돌려 줍 니 다.원래 문자열 은 변 하지 않 습 니 다.(문자열 의 동작 은 거의 원래 문자열 을 바 꾸 지 않 습 니 다.예외 가 있 지만 잊 어 버 렸 습 니 다)
  
public String replaceAll(String regex,String replacement) {
    Pattern.(regex).matcher().replaceAll(replacement)}

  replace All 에서 바 꾼 문자열 은 정규 표현 식 과 일치 합 니 다.

좋은 웹페이지 즐겨찾기