replace 함수와 replace함수는 둘다 특정 문자열을 원하는 문자열로 바꿔주는 함수이다.

 

특히 해당 스트링의 값을 바꿔주는게 아니라 변경된 문자열 값을 리턴해주는 함수이기 때문에

 

s.replace("A","B");  이렇게만 쓰면 소용이 없다.

s= s.replace("A","B"); 이런식으로 메소드의 리턴값을 넣어줘야 한다.

 

이클립스에서 해당 메소드들의 API 문서를 참고하면 이렇다

 

String replace(CharSequnce target, CharSequence replacement)

String replaceAll(String regex, String replacement)

 

따라서 replace는 첫번쨰 인자값으로 문자열이 들어가야만 한다.

하지만 replaceAll은 첫번째 인자값으로 정규식이 들어간다. ( 정규식을 이용하면 불특정 문자열을 변환할 수 있어서 장점이 있다)

 

예를 들어, 

#1

  String str = "aaabbbccccabcddddabcdeeee";
  
  String result1 = str.replace("abc", "왕");
  String result2 = str.replaceAll("[abc]", "왕");         // [abc]정규식 표현, [abc]는 []안에 있는 문자들을 전부 왕으로 바꿈
  System.out.println("replace result->"+ result1);
  System.out.println("replaceAll result->"+ result2);

 

 결과값

replace result->aaabbbcccc왕dddd왕deeee
replaceAll result->왕왕왕왕왕왕왕왕왕왕왕왕왕dddd왕왕왕deeee

 

#2

  String str = "testa1testbccc2testccc3";
  str = str.replaceAll("[^0-9]", "");
  
  System.out.println(str);

 

이번엔는 숫자를 찾아주는 정규식이다.

숫자가 아닌 값은 전부 빈문자열로 치환하라는 의미입니다.

 

결과값은 123

 

이 찍힌다.

 

따라서 replaceAll은 정규식을 사용해 replace에서 처리하지 못한 문자열도 처리가 가능하다.

 

'JAVA' 카테고리의 다른 글

JAVA 기본 환경 세팅  (0) 2023.03.01
[Java] String Immutable  (0) 2021.08.25
Java ( I / O Stream , 데이터 xml 파싱)  (0) 2021.07.29
Java (Exception Handling, Collection Framework)  (0) 2021.07.27
JAVA (추상 클래스, Interface, Generics)  (0) 2021.07.26
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기