자바 에서 replace 와 replace All 의 차이

replace 와 replace All 은 JAVA 에서 자주 사용 하 는 문자 교체 방법 입 니 다.이들 의 차 이 는:
1)replace 의 인 자 는 char 와 CharSequence 입 니 다.즉,문자 의 교 체 를 지원 할 수 있 고 문자열 의 교체 도 지원 합 니 다.
2)replaceAll 의 인 자 는 regex 입 니 다.즉,규칙 표현 식 을 기반 으로 하 는 교체 입 니 다.예 를 들 어 replaceAll("\\d","*")을 통 해 문자열 의 모든 숫자 문 자 를 별표 로 바 꿀 수 있 습 니 다.
같은 점 은 모두 바 뀌 는 것 입 니 다.즉,원본 문자열 의 특정한 문자 나 문자열 을 모두 지정 한 문자 나 문자열 로 바 꾸 는 것 입 니 다.처음 나타 난 것 만 바 꾸 려 면 replaceFirst()를 사용 할 수 있 습 니 다.이 방법 도 규칙 표현 식 을 기반 으로 바 꿀 수 있 지만 replaceAll()과 달리 처음 나타 난 문자열 만 바 꿀 수 있 습 니 다.
또한 replace All()과 replace First()가 사용 하 는 매개 변수 가 규칙 표현 식 에 기반 한 것 이 아니라면 replace()와 문자열 을 교체 하 는 효과 가 같 습 니 다.즉,이 두 가지 도 문자열 의 조작 을 지원 합 니 다.
또 한 가지 주의:교체 작업 을 실행 한 후 원본 문자열 의 내용 은 변경 되 지 않 았 습 니 다.
예 를 들 면 다음 과 같다.
String src = new String("ab43a2c43d");
System.out.println(src.replace("3","f"));=>ab4f2c4fd.
System.out.println(src.replace('3','f'));=>ab4f2c4fd.
System.out.println(src.replaceAll("\\d","f"));=>abffafcffd.
System.out.println(src.replaceAll("a","f"));=>fb43fc23d.
System.out.println(src.replaceFirst("\\d,"f"));=>abf32c43d
System.out.println(src.replaceFirst("4","h"));=>abh32c43d.
 
문자열 의"\"를"\\"로 바 꾸 는 방법:
  String msgIn;
  String msgOut;
  msgOut=msgIn.replaceAll("\\\\",\\\\\\\\);
ps:그래도 될 것 같 습 니 다.msgIn=msgIn.replaceAll("\\\\\\\",\\\\\\\\\\\\\);
 
원인:
'\'는 자바 에서 전의 문자 이기 때문에 두 개 로 하 나 를 대표 해 야 합 니 다.예 를 들 어 System.out.println("\\");"\"하나만 출력 합 니 다.그러나'\'도 정규 표현 식 의 전의 문자(replace All 의 매개 변 수 는 정규 표현 식)이 므 로 두 개 로 하 나 를 대표 해 야 합 니 다.그래서\\\\\\는 자바 에서\\로,\\는 정규 표현 식 에서\로 바 뀌 었 다.
같다
  CODE: \\\\\\\\
  Java: \\\\
  Regex: \\
 
문자열 의'/'를'\'로 바 꾸 는 몇 가지 방법:
  msgOut= msgIn.replaceAll("/", "\\\\");
  msgOut= msgIn.replace("/", "\\");
  msgOut= msgIn.replace('/', '\\');

좋은 웹페이지 즐겨찾기