blues_log

오늘 학습한 내용

  • Java : replace 메소드, 프로그래머스 문제풀이
  • 내일배움캠프 : 미니 프로젝트 마무리 및 발표 (WIL에 정리)

새로 알게된 내용

Replace 메소드

String이나 배열같은 곳에서 데이터를 수정해야하는 상황이 발생했을 때, 그것을 하나하나 수정하기는 매우 번거롭고 실수를 할 가능성이 매우 높다.

 

이런 경우에 쓰일 수 있는 메소드가 바로 Replace이다.


Replace

String replace(CharSequence target, CharSequence replacement)
replace(기존 문자열, 바꾸고 싶은 문자열)

Replace 메소드는 자신이 바꾸고 싶은 문자열을 찾아서 바꾸고 싶은 문자열로 바꾸어주는 메소드이다.


ReplaceAll

String replaceAll(String regex, String replacement)
replaceAll(정규식 or 기존 문자열, 바꾸고 싶은 문자열)

ReplaceAll 메소드는 Replace 메소드와 같이 자신이 바꾸고 싶은 문자열을 찾아서 바꾸고 싶은 문자열로 바꾸어주는 메소드이다.

 

여기서 'replace와 replaceAll이 같은 것 아니야?' 라고 생각할 수 있지만 차이점이 있다.


Replace vs ReplaceAll

replace와 replaceAll의 가장 큰 차이점은 replaceAll은 첫 번째 인자 값으로 정규식을 받는다는 것이다.

다음 예제를 확인하면 차이를 명확하게 알 수 있을 것이다.

String str = "abcaaabbbcccddd";

str = str.replace("abc", ".");
System.out.println(str); //...aaabbbcccddd
String str = "abcaaabbbcccddd";

str = str.replaceAll("[abc]", ".");
System.out.println(str); //............ddd

replaceAll에는 replace에서 처리를 하지 못하는 부분인 정규식을 처리를 해준다 !

 

여기서 [abc]는 []안에 있는 문자를 전부 변환하라는 뜻이다.

즉, 'a','b','c' 각각을 '.'으로 변환하라는 뜻이다.

 


ReplaceFirst

replaceFirst(String regex, String replacement)
replaceFirst(기존 문자열, 바꾸고 싶은 문자열)

replaceFirst 메소드는 기존 문자열에서 처음으로 찾은 문자열 하나만 바꾸어주는 메소드이다.


느낀점

자바는 공부하면 공부 할수록 점점 더 배워 나가야하는 것들이 많아지는 것 같다.

언젠가는 자바를 마스터하는 그날까지 더욱 열심히 공부하자 !!