String.split에서 파이프 구분 기호 이스케이프
문자열에서 분할 메서드를 사용할 때 특정 문자 이스케이프의 중요성을 이해하는 것이 중요합니다. . 특히 파이프 문자(|)는 특수 구분 기호 역할을 하며, 이스케이프되지 않고 존재하면 예상치 못한 결과가 발생할 수 있습니다.
Why Escape the Pipe?
The 분할 메소드에는 각 문자가 특정 패턴 일치 규칙을 나타내는 정규식 인수가 필요합니다. 이스케이프되지 않은 파이프가 사용되면 정규식 내에서 논리적 OR 연산자로 해석됩니다. 이는 빈 문자열 또는 다른 빈 문자열과 일치하는 패턴을 나타냄을 의미하며 이는 의도된 동작이 아닙니다.
예
다음 코드 조각을 고려하세요. 파이프로 구분된 값이 있는 줄을 구문 분석하려고 합니다.
private ArrayList<String> parseLine(String line) { ArrayList<String> list = new ArrayList<String>(); String[] list_str = line.split("|"); for(String s:list_str) { list.add(s); System.out.print(s+ "|"); } return list; }
파이프를 이스케이프 처리하지 않으면 이 코드는 문자열의 모든 문자를 구분 기호로 잘못 일치하여 빈 배열이 생성됩니다.
해결책: 파이프 탈출
파이프가 리터럴 구분 기호로 인식되도록 하려면 백슬래시 문자를 사용하여 이스케이프해야 합니다. 이는 파이프가 정규식 연산자가 아닌 문자로 처리되어야 한다는 것을 분할 메서드에 나타냅니다.
private ArrayList<String> parseLine(String line) { ArrayList<String> list = new ArrayList<String>(); String[] list_str = line.split("\|"); for(String s:list_str) { list.add(s); System.out.print(s+ "|"); } return list; }
"|"를 사용하여 파이프를 이스케이프 처리하면 분할 메서드가 이제 줄의 값을 올바르게 구분합니다. .
위 내용은 Java의 String.split 메소드에서 파이프 문자를 이스케이프해야 하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!