>  기사  >  Java  >  Java의 String.split 메소드에서 파이프 문자를 이스케이프해야 하는 이유는 무엇입니까?

Java의 String.split 메소드에서 파이프 문자를 이스케이프해야 하는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-06 06:28:02634검색

Why Should I Escape the Pipe Character in Java's String.split Method?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.