split (“|”)을 사용하여 파이프 기호로 Java 문자열 분할
Java 공식 문서에는 다음이 명시되어 있습니다.
"boo:and:foo"
예를 들어, 문자열 은 이러한 표현식 Regex Result로 다음과 같은 결과를 생성합니다.
{ "boo", "and", "foo" }"
그것이 내가 작동하는 방식입니다. 그러나 내가 이것을 실행하면 :
public static void main(String[] args){
String test = "A|B|C||D";
String[] result = test.split("|");
for(String s : result){
System.out.println(">"+s+"<");
}
}
다음을 인쇄합니다.
><
>A<
>|<
>B<
>|<
>C<
>|<
>|<
>D<
내가 기대했던 것과는 거리가 멀다.
>A<
>B<
>C<
><
>D<
왜 이런 일이 발생합니까?
당신은 필요
test.split("\\|");
split
정규 표현식을 사용에 정규식 |
나타내는 메타 문자 OR
연산자. 를 사용하여 해당 문자를 이스케이프해야합니다 \
( 문자열 리터럴의 메타 문자 "\\"
이므로 문자열로 작성 \
되므로 다른 문자 \
가 이스케이프되어야합니다).
당신은 또한 사용할 수 있습니다
test.split(Pattern.quote("|"));
를 Pattern.quote
나타내는 이스케이프 된 이스케이프 버전을 만들어 보자 |
.
적절한 이스케이프를 사용하십시오. string.split("\\|")
또는 Java 5 이상에서는 Pattern.quote()
정확히이 목적으로 작성된 도우미 를 사용하십시오 .
string.split(Pattern.quote("|"))
임의의 입력 문자열과 함께 작동합니다. 사용자 입력을 인용 / 이스케이프해야 할 때 매우 유용합니다.
이 코드를 사용하십시오 :
public static void main(String[] args) {
String test = "A|B|C||D";
String[] result = test.split("\\|");
for (String s : result) {
System.out.println(">" + s + "<");
}
}
아파치 라이브러리를 사용하여 다음을 수행 할 수도 있습니다.
StringUtils.split(test, "|");
을 사용할 수도 있습니다 .split("[|]")
.
(나는 대신 이것을 사용 .split("\\|")
했지만 나에게는 효과가 없었다.)
test.split("\\|",999);
"boo ||| a"또는 "|| boo |"와 같은 예 에서는 한계 또는 최대 값을 지정하는 것이 정확 합니다. 또는 "|||"
그러나 test.split("\\|");
동일한 예제에 대해 다른 길이의 문자열 배열을 반환합니다.
사용 참조 : 링크
split () 메소드는 정규 표현식을 인수로 사용합니다.
참고URL : https://stackoverflow.com/questions/10796160/splitting-a-java-string-by-the-pipe-symbol-using-split
'development' 카테고리의 다른 글
시간 부분없이 두 날짜를 비교하는 방법은 무엇입니까? (0) | 2020.05.15 |
---|---|
"exportAs"가 "ngForm"으로 설정된 지시문이 없습니다. (0) | 2020.05.15 |
배치 파일 : 하위 문자열이 문자열이 아닌 파일인지 확인하십시오. (0) | 2020.05.14 |
자식으로 분기를 다운로드하는 방법은 무엇입니까? (0) | 2020.05.14 |
배열의 시작 부분으로 요소를 푸시하는 가장 쉬운 방법은 무엇입니까? (0) | 2020.05.14 |