split 함수는 사용자가 입력한 구분자를 기준해서 문자열을 분리하는 함수로 구분자로 정규식 패턴을 사용할 수 있다. 이에 따라 구분자를 "|"로 지정할 시 오작동이 일어난다.

 

"aa|bb|cc".split("|");
→ a

a

|

b

b

|

c

c

 

정규식에서 "|" 문자는 or을 의미(com|net = com or net)한다. 위와 같이 단독으로 쓰였을 경우 (빈 공간) 또는 (빈 공간), 즉 모든 문자 사이 간격을 의미하게 되므로 문자 하나하나가 분리된다. 정규식에서 특수한 용도로 쓰이는 문자의 경우 앞에 역슬래시(한글 키보드로는 원 단위 표시)를 붙여 문자 원래의 의미로 사용 가능하다.

 

"aa|bb|cc".split("\|");

 

위와 같이 고쳐보자. 정규식으로는 문제가 없는 구문이나 컴파일 오류가 발생한다. JSP에서는 특정한 역할을 하는 문자열에 역슬래시를 붙여서 사용하는데 (줄바꿈 = \n) 그런 특수 문자열 중에서 \|가 정의되어 있지 않기에 발생하는 오류이다. JSP 역시 특수 문자열을 문자열 원래의 의미로 사용하려면 역슬래시를 붙여야 한다.

 

"aa|bb|cc".split("\\|");

→ aa

bb

cc

 

위 구문을 사용할 경우 처음에 의도했던 목적대로 동작한다.
 

 

참고: Java7 API - public String[] split(String regex)


번호 분류 제목 글쓴이 날짜
52 개발 Objective C / Property 속성 19/04/27 22:35
51 개발 CocoaPods / 버전 관리 19/04/21 02:50
50 개발 Objective C / View Load Procedure 순서 19/04/19 23:48
49 개발 Objective C / Copy, Mutable Copy 19/04/18 18:59
48 개발 Objective C / Location Permission 19/04/17 23:27
47 개발 Windows / Telnet 활성화 18/12/27 11:10
46 개발 CentOS / 구버전 iso 파일 다운로드 18/12/08 01:48
45 게임 Yonder: The Cloud Catcher Chronicles 지도 18/01/20 04:18
44 개발 Windows 10 / Administrator 활성화 17/10/16 00:10
43 개발 Windows 10 / 재설치하기 17/10/16 00:09
42 기록 책 / SQL 첫걸음 17/09/08 01:23
41 기록 책 / (오라클로 배우는) 데이터베이스 개론과 실습 17/08/18 01:15
개발 JSP / split에서 구분자로 "|" 사용 시 주의사항 17/07/12 15:20
39 개발 DB / 정규화 간략 정리 17/07/06 20:41
38 기록 책 / (그림 한 장으로 보는) 최신 IT 트렌드 17/05/10 00:35
37 기록 책 / 손에 잡히는 정규 표현식 17/04/28 01:09
36 기록 책 / 오라클 11g + PL/SQL 입문 17/04/28 00:22
35 개발 워드프레스 / 에디터 폰트 바꾸기 16/12/11 20:05
34 개발 워드프레스 / 글 형식 변경하기 16/12/09 13:26
33 개발 워드프레스 / 자식 테마에 글 형식 추가하기 16/11/20 23:10