티스토리 뷰

 

[Java]

문자열 자르기 함수 split() 동작이 안될 때

split() 함수 특수문자 사용

 

 


 

 

 

Java에서 문자열을 특정 regex로 자를 때 split() 함수를 많이 사용한다.

split()함수 안에 들어갈 regex가 어떠한 것이든 함수가 정상적으로 동작하는 줄 알았는데,

특정 특수문자는 동작이 안된다는 것을 알게 되어 그를 해결할 수 있는 방법을 공유하려고 한다.

 

일반적인 split() 함수 사용
// 일반적인 split() 함수 예시
String phone = "010-1234-5678";
String[] rslt = phone.split("-");

- 위의 코드 케이스에서는 코드가 정상적으로 동작한다.

 

동작이 안되는 Code Example
// 실행이 되지 않는 split() 함수 예시
String phone = "1|2|3|4|5|6|7";
String[] rslt = phone.split("|");

- "|", "*", ".", "&" , "^"  등의 문자를 regex로 사용하는 경우 함수가 동작하지 않는다는 것을 프로젝트 진행 중에 알게 되었다.

 

동작 가능하도록 코드 수정한 Code Example
// 수정된 split() 함수 코드 예시
String phone = "1|2|3|4|5|6|7";
String[] rslt = phone.split("\\|");

- regex 앞에 \\ (백슬래시 두번) 을 넣어주면 코드가 정상적으로 돌아간다는 것을 알 수 있었다.

- 예상컨데 동작하지 않는 문자들은 코드 내에서 특정 의미를 가지고 있는 것들이라 코드가 돌아가지 않는 것 같다.

( | , &, ^, * : 논리식, 계산식 사용 시 부호로 사용 등)

 

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Total
Today
Yesterday
공지사항
최근에 올라온 글