[java] 문자열 치환

한지개·2023년 7월 11일

java

목록 보기
9/9
post-thumbnail

replace

  • 지정 문자열을 원하는 문자열로 치환.
  • String replace(CharSequnce target, CharSequence replacement
  • 대상문자열.replace(지정 문자열, 치환 문자열)

코드

public class Main {
    public static void main(String[] args){
        String s = "java, c, c++, python, java";
        System.out.println(s.replace("java", "c#"));
    }
}

지정 문자열"java"를 원하는 문자열"c#"로 치환함.
또한 모든 문자열을 치환 시킴.


replaceAll

  • 정규식을 사용해 지정 문자열을 원하는 문자열로 치환.
  • String replaceAll(String regex, String replacement)
  • 대상문자열.replaceAll(지정 문자열, 치환 문자열)

코드1

public class Main {
    public static void main(String[] args){
        String s = "java, c, c++, python, java";
        System.out.println(s.replaceAll("java", "c#"));
    }
}

지정 문자열"java"를 원하는 문자열"c#"로 치환함.
또한 모든 문자열을 치환 시킴.
replace 함수와 똑같이 동작함.

하지만, replaceAll 함수는 지정 문자열에 정규식을 지정할 수 있음.

코드2

public class Main {
    public static void main(String[] args){
        String s = "ja553v62a, 34243c5, 4c+543+4, py880th47o4222n, 346ja7v7a5";
        System.out.println(s.replaceAll("[0-9]", ""));
    }
}

지정 문자열에는 숫자의 범위를 의미하는 정규식 [0-9]를 지정함.
치환 문자열에는 "" 아무것도 지정하지 않음.
-> s 문자열에 있는 모든 숫자를 삭제시킴.


(+) 정규 표현식 추가

문자설명
^문자열의 시작
$문자열의 종료
.임의의 한 문자(필수입력, 문자의 종류 가리지 않음)
단, \는 넣을 수 없음
*앞 문자가 없을 수도 무한정 많을 수도 있음
+앞 문자가 하나 이상
?앞 문자가 없거나 하나있음
[]문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를 나타낸다.
{}횟수 또는 범위를 나타낸다.
()소괄호 안의 문자를 하나의 문자로 인식
|패턴 안에서 or 연산을 수행할 때 사용
\s공백 문자
\S공백 문자가 아닌 나머지 문자
\w알파벳이나 숫자
\W알파벳이나 숫자를 제외한 문자
\d숫자 [0-9]와 동일
\D숫자를 제외한 모든 문자
\정규표현식 역슬래시()는 확장 문자
역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고,
역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미

사용 예시

  • .x: 임의의문자 + x
    ex) a.c : abc, a0c ,,
    ex) a..c : abbc, a00c ,,

  • x* : x의 0번 이상 반복

  • x+ : x의 1번 이상 반복

  • ^x : 문자열이 x로 시작

  • x$ : 문자열이 x로 끝남

  • x? : x가 존재할수도, 하지 않을 수도 있음
    ex) ab?c : ac, abc 모두 가능

  • x|y : x 또는 y
    ex) (x|y)z : xy 또는 yz 모두 가능

  • x{n} : x의 n번 반복

  • x{m,n} : x의 m번 이상 n번 이하 반복

  • x{n,} : x의 n번 이상 반복

  • [xy] : x 또는 y 한 문자

  • [x-z] : x~z 범위 내의 한 문자

  • [^xy] : x 또는 y를 제외한 한 문자
    ex) [^yz] : a, b, c, ,,, w, x 중 한 문자를 의미


문자설명
[]or : 대괄호 안의 모든 문자
[^]not : 대괄호 안의 문자 외의 모든 문자
^[]대괄호 안의 문자로 시작하는 문자열
[]$대괄호 안의 문자로 끝나는 문자열

사용 예시2

  • [0-9], \d : 숫자만

  • [a-zA-Z] : 영문자만

  • [가-힣] : 한글만

  • [a-zA-Z0-9], \w : 영어 & 숫자만


replaceFirst

  • 첫 번째로 일치한 문자열을 원하는 문자열로 치환.
  • String replaceFirst(String regex, String replacement)
  • 대상문자열.replaceFirst(지정 문자열, 치환 문자열)

코드

public class Main {
    public static void main(String[] args){
        String s = "java, c, c++, python, java";
        System.out.println(s.replaceFirst("java", "c#"));
    }
}

지정 문자열이 처음으로 해당할 때만 치환 문자열로 치환함.

profile
평생 소원이 누룽지

0개의 댓글