반응형
String.split에 파이프 구분 기호가 필요한 이유는 무엇입니까?
파이프로 구분 된 값으로 각 줄이있는 파일을 구문 분석하려고합니다. 분할 방법으로 파이프 구분 기호를 이스케이프하지 않으면 올바르게 작동하지 않았지만 파이프를 이스케이프 처리 한 후 올바르게 작동했습니다.
private ArrayList<String> parseLine(String line) {
ArrayList<String> list = new ArrayList<String>();
String[] list_str = line.split("\\|"); // note the escape "\\" here
System.out.println(list_str.length);
System.out.println(line);
for(String s:list_str) {
list.add(s);
System.out.print(s+ "|");
}
return list;
}
누군가 파이프 split()
방법을 이스케이프 처리해야하는 이유를 설명해 주 시겠습니까?
String.split
정규 표현식 인수가 필요합니다. 이스케이프 처리되지 않은 |
것은 "빈 문자열 또는 빈 문자열"을 의미하는 정규식으로 구문 분석됩니다. 이는 의미하지 않습니다.
분할 할 해당 매개 변수의 구문은 정규식이므로 '|' OR의 특별한 의미와 '\ |' 리터럴 '|'을 의미 문자열 "\\ |" 정규 표현식을 의미합니다 '\ |' 이는 문자 '|'와 정확히 일치 함을 의미합니다.
당신은 단순히 이것을 할 수 있습니다 :
String[] arrayString = yourString.split("\\|");
참고 URL : https://stackoverflow.com/questions/9808689/why-does-string-split-need-pipe-delimiter-to-be-escaped
반응형
'Programing' 카테고리의 다른 글
Firefox에서 캐싱을 끄는 방법? (0) | 2020.06.21 |
---|---|
Android에서 ListView 클릭을 처리하는 방법 (0) | 2020.06.21 |
인수로 전달 된 TypeScript 객체의 기본값 설정 (0) | 2020.06.20 |
AngularJ에서 CORS를 활성화하는 방법 (0) | 2020.06.20 |
Eclipse에서 전체 프로젝트를 찾거나 바꾸는 방법이 있습니까? (0) | 2020.06.20 |