일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- github
- db
- this
- HTML
- jQuery
- bootstrap
- Cloud
- http
- nosql
- web
- W
- firestoredatabase
- Github Pages
- IntersectionObserver
- 배포
- data
- Fetch
- CSS
- Database
- TMDB
- url
- SQL
- REACT
- API
- supabase
- JavaScript
- Boostrap
- useEffect
- til
- Protocol
- Today
- Total
072DATA
자바 문자열 대체 메소드(replaceAll) 본문
replaceAll은 문자열 메소드로
replace와 같은 기능을 하지만 차이가 명확하다
대체로 문자를 문자로 대체할 때 replace를 사용하는데
프로그래밍에서는 경우의 수가 많기에 상황에 맞는 문자를 다른 문자로 변경할 줄 알아야 한다.
그런 점에서 replaceAll이 유용하다고 할 수 있는데 replaceAll의 표현식은 굉장히 다양하다
간단한 표현식 5개를 알아보세~
1. 숫자(\\d):
//숫자를 특정 문자로 대체 (특정 문자는 "X"를 사용하겠소)
String str = "Hello, 123!";
// \\d는 0부터 9까지의 숫자를 의미하고 따라서 숫자들을 전부 특정 문자로 대체한다.
String con = str.replaceAll("\\d", "X");
System.out.println(con);
// 출력 결과는 "Hello, XXX!"
2. 공백(\\s):
//공백을 특정 문자로 대체(특정 문자는 "_"를 사용하겠소)
str = "Replace spaces with underscores";
// \\s는 공백 문자에 해당함(띄어쓰기) 따라서 공백을 특정 문자로 대체한다
con = str.replaceAll("\\s", "_");
System.out.println(con);
// 출력결과는 "Replace_spaces_with_underscores"
만약 여러개의 공백을 대체하고 싶다면 "\\s+"로 사용하면 된다
3. 알파벳([a-zA-Z]) 또는 한글 ([가-힣])
영문 알파벳이 아닌 문자를 특정 문자로 바꾸기
text = "Replace non-alphabetic characters";
// [^a-zA-Z]는 영문 알파벳이 아닌 모든 문자를 나타냄
result = text.replaceAll("[^a-zA-Z]", "X");
System.out.println(result);
// 출력: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
여기서 한글만 나타내고 싶다면 [^가-힣]를
자음만 출력한다면 [^ㄱ-ㅎ]를 모음만 출력한다면 [^ㅏ-ㅣ]를 사용한다
추가로 포함된 글자에서 특정 문자만 제외하고 출력하는 방법으로는
[가-힣&&[^ㅏ]]을 사용해 한글만 출력하는 문자열에서 "ㅏ"만 제외한 문자열을 가져올 수 있음
&&[^ ] 는 replaceAll을 사용할 때 어떤 상황이든 사용 가능하다
4. 문자 그룹 ((abc|123)):
// "abc" 또는 "123"을 "X"로 바꾸기
text = "Replace abc or 123";
// (abc|123)은 "abc" 또는 "123"을 나타냄 "abc" 또는 "123"을 "X"로 바꿉니다.
result = text.replaceAll("(abc|123)", "X");
System.out.println(result);
// 출력 결과는 "Replace X or X"
만약 "123", 혹은 "abc"와 같이 한 문자 그룹만 지우고 싶으면
' | ' 를 제거하고 하나의 문자 그룹만 포함시키면 된다
5. 반복 (+, *, {n}, {n,}, {n,m}):
//특정 문자가 한 번 이상 반복되는 부분을 대체 문자로 바꾸기
text = "Replace repeated characters";
// a+는 "a"가 한 번 이상 반복되는 패턴을 나타냅니다. "a"가 반복되는 부분을 "X"로 바꿉니다
result = text.replaceAll("a+", "X");
System.out.println(result);
// 출력 결과는 "ReplXce repeXted chXrXcters"
- *: 0번 이상의 반복 (즉, 없어도 되고 여러 번 나와도 됨)
- {n}: 정확히 n번 반복
- {n,}: n번 이상 반복
- {n,m}: n번부터 m번까지 반복
6. replaceAll("[대체 하고싶은 문자, 대체할 문자]"
만약 여러개의 문자들을 특정 문자나 공백등으로 대체 해야할 때
String str = "agoioweqmu"; //주어진 문자열
String str2 = my_string.replaceAll("[aosq]", "");
//주어진 문자열에서 replaceAll을 사용한 뒤 "[대체 하고싶은 문자, 대체할 문자]"를 입력
// 출력 결과 = giwemu
끝으로 각 표현식을 이해하면서 여러 상황에 맞게 변경하여 사용하면 더더욱 효과적으로 코딩을 할 수 있을것 같다.
특히 [가-힣&&[^ㅏ]] 같은 표현식은 비속어 처리같은 것에 사용할 수 있지 않을까 하고 코린이는 상상한다. ㅈㅈ;
'BackEnd > JAVA' 카테고리의 다른 글
자바 배열 정렬 메소드 (Arrays.sort) (1) | 2023.12.11 |
---|---|
자바 배열 복사 (Arrays.copyOf) (1) | 2023.12.08 |
자바 문자열 관련 메소드 (2) (1) | 2023.12.05 |
자바 문자열 관련 메소드(1) (2) | 2023.12.03 |
2023-11-29 (0) | 2023.11.29 |