2013-04-10 4 views
3

|이있을 때마다 문자열을 분할하려고하지만 split 메서드는 정규식 만 허용합니다. 정규식 |은 각 문자 다음에 나오는 문자열을 나눕니다. \u007C을 사용하면 똑같은 작업을 수행합니다.Java String.split (regex) not working

나는 \|을 사용해 보았지만, 그게 내게 : Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\)을주었습니다.

답변

7

당신은 같은 것을 할 필요가 :

\\| 

이유는 그 위해서는 정규 표현식에서 "|" "|"로 간주된다. 정규식 연산자가 아니라 "\"가 필요합니다. 하지만 java에서는 문자열에 "\"를 쓸 수 없습니다. 문자열에 저장 연산자가 있기 때문입니다. 따라서 \\을해야합니다. 그것이 그것을 설명하기를 바라는 희망.

2

백 슬래시를 탈출하십시오. Java 문자열에 있으며 리터럴 백 슬래시가 있어야합니다. 나를 위해

"\\|" 
2

작품 :

import java.util.Arrays; 

public class Testing { 
    public static void main(String[] args){ 
     String word= "abc|def"; 
     String[] splitted = word.split("\\|"); 
     System.out.println(Arrays.toString(splitted)); /* prints: [abc, def] */ 
    } 
} 
3

또 다른 제안은 Pattern.quote("|")를 사용하는 것입니다.