분할("|")을 사용하여 파이프 기호를 기준으로 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
정규식과 정규식을 사용한다. |
메타카로터(metacharacter)는 이 유전자를 대변한다.OR
교환원의당신은 그 캐릭터를 탈출해야 한다.\
(문자열로 작성됨: as."\\"
그 이후\
또한 스트링 리터럴의 메타차박터로서 다른 것을 필요로 한다.\
그것을 피하기 위해.
사용할 수도 있다.
test.split(Pattern.quote("|"));
그리고 내버려두다Pattern.quote
대표되는 regex의 탈출 버전을 만들다.|
.
적절한 탈출 방법을 사용하십시오.string.split("\\|")
또는 Java 5+에서 정확히 다음과 같은 목적으로 작성된 도우미를 사용하십시오.
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|||" 또는 "|boo|" 또는 "|||||"
그렇지만test.split("\\|");
동일한 예제에 대해 다른 길이 문자열 배열을 반환한다.
참조 사용: 링크
splitculate 방식은 규칙적인 표현을 논쟁으로 삼는다.
참조URL: https://stackoverflow.com/questions/10796160/splitting-a-java-string-by-the-pipe-symbol-using-split
'programing' 카테고리의 다른 글
Flex/lex의 문자열 리터럴에 대한 정규식 (0) | 2022.05.26 |
---|---|
C의 크기가 "int"가 2바이트인가 4바이트인가? (0) | 2022.05.26 |
TypeError로 인해 Vuex+Jest 테스트가 실패함 (0) | 2022.05.25 |
형식 지정 구성 요소에서 Vue 프로토타입 속성에 액세스하는 방법 (0) | 2022.05.25 |
vue2는 구성 요소의 $properties를 사용하여 상위 함수를 호출함 (0) | 2022.05.25 |