알고리즘/Java 알고리즘

replaceAll() 정규식 훈련 [JAVA 알고리즘]

지니어스팍 2023. 12. 18. 21:46
728x90
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/64065

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제를 풀면서 replaceAll에 대해 간단히 알게된 사실을 기록해보기로했다.

 

replaceAll

아래처럼 문자열이 주어졌을 때

String s ="{{2},{2,1},{2,1,3},{2,1,3,4}}";

{ 와 } 를 없애기 위해 replaceAll을 했는데 이 때 다른 문구와 달리 특수문구는 [] 사이에 적는걸 볼 수 있다.

System.out.println("시작"+s.replaceAll("[{]"," ")+"끝");
System.out.println("시작"+s.replaceAll("[{]"," ").replaceAll("[}]"," ")+"끝");
System.out.println("시작"+s.replaceAll("[{]"," ").replaceAll("[}]"," ").trim()+"끝");

 

trim()

그리고 trim()을 다시 짚을 수 있었다. 시작과 끝의 공백을 없애주는 역할

시작 4,2,3}, 3}, 2,3,4,1}, 2,3}}끝
시작 4,2,3 , 3 , 2,3,4,1 , 2,3 끝
시작4,2,3 , 3 , 2,3,4,1 , 2,3끝

 

 

replaceAll 정규식 훈련해보기 ~ 몇 개 맞추는지 봅시다.

 

주어진 문자열 s

"갑자기 제육볶음이랑 김치찌개가 땡기는거야 히힣 아니 그거 누가 안좋아하냐굿!
ㅇㅏㄴㅣ,.,.뿌잉뿌잉 abcde에푸지 알아?ABCDEFG말이야! 1010235한다!!!!@#%$^$#^"

 

case 1

s.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", " ");

 

case 2

s.replaceAll("[ㄱ-ㅎㅏ-ㅣ가-힣a-zA-Z0-9]", " ");

case 3

s.replaceAll("[a-zA-Z0-9]", " ");

case 4

s.replaceAll("[^ㄱ-ㅎㅏ-ㅣ가-힣]", " ");

case 5

s.replaceAll("[ㄱ-ㅎㅏ-ㅣ]", " ");

case 6

s.replaceAll("[가-힣]", " ");

 

 


 

답을 확인해보자!

 

 

 

 

case 1 답 - 특수문자가 지워진다.

갑자기 제육볶음이랑 김치찌개가 땡기는거야 히힣 아니 그거 누가 안좋아하냐굿      
ㅇㅏㄴㅣ        뿌잉뿌잉 abcde에푸지 알아 ABCDEFG말이야 1010235한다                         

 

case 2 답 - 특수문자 외의 모든것이 지워진다.

                                                         !              ,.,.                ?                 !                              !!!!@#%$^$#^

 

case 3 답 - 영어 숫자가 지워진다.

갑자기 제육볶음이랑 김치찌개가 땡기는거야 히힣 아니 그거 누가 안좋아하냐굿!
ㅇㅏㄴㅣ,.,.뿌잉뿌잉            에푸지 알아?             말이야!                 한다!!!!@#%$^$#^

 

case 4 답 - 한글 외의 모든것이 지워진다.

갑자기 제육볶음이랑 김치찌개가 땡기는거야 히힣 아니 그거 누가 안좋아하냐굿   
ㅇㅏㄴㅣ      뿌잉뿌잉                      에푸지 알아                말이야                     한다                                

 

case 5 답 (ㅇ ㅏ ㄴ ㅣ 만 지워진다 떨어져있는 모음 자음.)

갑자기 제육볶음이랑 김치찌개가 땡기는거야 히힣 아니 그거 누가 안좋아하냐굿!          ,.,.뿌잉뿌잉 abcde에푸지 알아?ABCDEFG말이야! 1010235한다!!!!@#%$^$#^

 

case 6 답 (모음자음떨어져있지 않은 한글만 지워진다.)


!  ㅇㅏㄴㅣ,.,.       abcde           ?ABCDEFG        !     1010235      !!!!@#%$^$#^

 

 

728x90
728x90