2017. 2. 8. 10:34ㆍlanguage/java
java replace last 구현하기
java 에서 replace는 익히 많이 사용하는 String 함수 중 하나이다.
특정 문자열에서 단어나 문자 등을 찾아서 바꿔주는 치환함수이다.
replace 함수는 다음과 같이 분류된다.
String replace (char oldChar, char newChar)
|
replace 함수에 대해서는 기본적으로 모두 알고 있을꺼라는 생각에 자세한 설명은 생략.
내가 필요한 것은 마지막에 나오는 특정 문자(문자열)을 찾아서 치환하고 싶다.
String replace 함수들을 보면 내가 원하는 것은 없다.
마지막에 나오는 특정 문자열을 바꾸는 방법은 구현하기 나름이니 엄청나게 많을 것이다.
그 중 3가지 정도를 소개하려 한다.
간단하니 자세한 설명은 역시 생략함.
1. 특정 문자열을 기준으로 자르고 이어 붙이는 방법
특정 문자열의 마지막 위치를 기준으로 앞으로 자르고
뒤로는 특정 문자열 마지막 위치+특정 문자열 length 부터 끝까지 자르고
치환할 문자열을 그 사이에 이어 붙힌다.
1
2
3
4
5
6
7
8 |
public static String replaceLast(String str, String regex, String replacement) {
int regexIndexOf = str.lastIndexOf(regex);
if(regexIndexOf == -1){
return str;
}else{
return str.substring(0, regexIndexOf) + replacement + str.substring(regexIndexOf + regex.length());
}
} |
cs |
2. 특정 문자열을 기준으로 앞 뒤로 자르고 뒷 문자열에 대해서만 replace 하는 방법
특정 문자열의 마지막 위치를 기준으로 앞으로 자르고
뒤로는 특정 문자열 마지막 위치부터 끝까지 자르고
뒤에 자른 문자열에 대해 replace 한다.
1
2
3
4
5
6
7
8 |
public static String replaceLast(String str, String regex, String replacement) {
int regexIndexOf = str.lastIndexOf(regex);
if(regexIndexOf == -1){
return str;
}else{
return str.substring(0, regexIndexOf) + str.substring(regexIndexOf).replace(regex, replacement);
}
} |
cs |
3. 정규식을 이용한 방법
정규식을 이용해서 마지막 문자를 치환함 (Stack Overflow 참고)
1
2
3 |
public static String replaceLast(String text, String regex, String replacement) {
return text.replaceFirst("(?s)(.*)" + regex, "$1" + replacement);
} |
cs |
* 사용방법 !
* 결과 !
끝 !
'language > java' 카테고리의 다른 글
JAVA BigDecimal 사칙연산(더하기, 빼기, 나누기, 곱하기), 비교 compareTo, 소수점 처리 (올림, 버림, 반올림) (0) | 2017.11.16 |
---|---|
Java bean to map, vo to map, 객체를 Map으로 변환 (5) | 2017.09.29 |
Java HttpUrlConnection 으로 통신하기 / 파일 전송 및 수신 (0) | 2017.09.28 |
Java 파일을 바이너리 스트링으로, 바이너리 스트링을 파일로 변환 / 파일 전송 (2) | 2017.09.28 |
JAVA List VO 정렬 Collections Sort Comparator 사용하기 (0) | 2017.09.04 |
Java | Byte 배열과 바이너리 String 문자열 간의 상호 변환 (0) | 2017.01.19 |
Java C Socket 통신, 파일전송 / C : Server / Java : Client (7) | 2017.01.18 |
JAVA 다중 for문 수행횟수에 따른 속도 차이 실험 (0) | 2017.01.04 |
Java를 이용하여 페이지 정보 가져오기(IP, Header, 페이지정보 등) (0) | 2016.12.29 |
Java 랜덤 문자열 생성 / Random 클래스 / 랜덤 숫자 / 난수 (2) | 2016.12.02 |