(JSP) 대소문자 상관없이 치환해주는 함수 만들기(IgnoreCaseReplaceAll) JSP_Java

다른 프로그램 언어에는 자체적으로 대소문자 무시하고 치환해주는 함수가 존재하지만, 아마도 jsp 에는 이런 함수가 없는 모양이다.
별도로 JSTL 에는 있다고 하는것 같은데, jsp 자체에서 함수를 만들어 대소문자 상관없이 원하는 문자열로 치환해주는 함수를 만들어 보았다.
웹서핑에서 찾다보니 (?i) 라는 기호를 앞에 써주어 바꾸는 클래스를 사용한 예가 있는데,
여기서는 클래스가 아니라 그냥 함수로 선언해서 사용하는 방식으로 변형을 했다.

함수를 호출할때, 변환하려는 전체문장과 변환하려는 대상 문자열(대소문자 상관없이), 그리고 치환하려는 문자열을 전송해주면, 해당 함수는 받아들인 전체 문자열에서 replaceAll 을 실행한다.
이때, 대상 문자열의 대소문자에 상관없이 처리하게 하기 위해 대상 문자열 앞에 (?i) 라는 기호를 붙여준다.
그러면, 만약, 전체문장에 들어있는 문자열 중에 대소문자가 다르기는 하지만 대상 문자열과 같은 내용이 있다면, 지정한 문자열로 치환해준다.

P.S.
물론, 이 함수는 하는 기능이 별로 없기 때문에, 용법만 잘 이해한다면 굳이 함수를 만들어 사용하지 말고, 그냥 대상 문자열 앞에 (?i) 를 붙여 바로 replaceAll 을 사용하는것도 좋을것 같다.

<%@ page contentType="text/html;charset=euc-kr" %>
<%!
//대소문자 상관없이 문자열 치환
public static String ignorecasereplaceall(String str, String str1, String str2){
  //String rslt = str.replaceAll("(?i)abc", "ZZZ");
  String rslt = str.replaceAll("(?i)"+str1,str2);
  return rslt;
}
%>
<%
String m = "Abc abc AbC aBc";
String s1 = "abc";
String s2 = "ZZZ";
m = ignorecasereplaceall(m,s1,s2);
out.print("["+m+"]<br />");

//출력결과
// [ZZZ ZZZ ZZZ ZZZ]
%>



덧글

댓글 입력 영역
* 비로그인 덧글의 IP 전체보기를 설정한 이글루입니다.


통계 위젯 (화이트)

466572
3663
11006562

google_myblogSearch_side

▷검색어

Flag Counter style2