source

String.split()을 여러 딜리미터와 함께 사용합니다.

goodcode 2022. 8. 1. 22:44
반응형

String.split()을 여러 딜리미터와 함께 사용합니다.

구분 기호를 기준으로 문자열 기준을 분할해야 합니다.-그리고..다음은 제가 원하는 출력입니다.

AA.BB-CC-DD.zip->

AA
BB
CC
DD
zip 

하지만 다음 코드는 작동하지 않습니다.

private void getId(String pdfName){
    String[]tokens = pdfName.split("-\\.");
}

정규식 OR 연산자를 포함해야 합니다.

String[]tokens = pdfName.split("-|\\.");

가지고 있는 것이 일치합니다.
[DASH에 이어 DOT까지 함께]-.
것은 아니다.
[대시 또는 DOT 중 하나]-또는.

이 정규식을 사용해 보세요."[-.]+". 뒤에 + 는 연속되는 딜리미터 문자를 1로 취급합니다.이것을 원하지 않는 경우는, 플러스 키를 떼어냅니다.

정규식 "\W"를 사용할 수 있습니다.이 문자는 모든 비워드 문자와 일치합니다.필요한 행은 다음과 같습니다.

String[] tokens=pdfName.split("\\W");

Guava를 사용하면 다음을 수행할 수 있습니다.

Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);

당신이 주는 끈은split는 정규 표현의 문자열 형식입니다.따라서 다음과 같습니다.

private void getId(String pdfName){
    String[]tokens = pdfName.split("[\\-.]");
}

즉, 네트워크 내의 임의의 캐릭터로 분할할 수 있습니다.[](우리는 도망쳐야 한다)-내부는 특별하기 때문에 백슬래쉬로[]스트링이기 때문에 당연히 백슬래시를 피해야 합니다).(역방향으로).보통은 특별하지만 내부는 특별하지 않다[].)

딜리미터 "AND"와 "OR"과 같은 두 가지 문자 시퀀스에 대해 이 작업을 수행해야 합니다.사용하면서 다듬는 것을 잊지 마세요.

 String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
 String[] cities = text.split("AND|OR"); 

결과: 도시 = {"이스탄불 ", "뉴욕", "파리", "도쿄", "모스크바"}

Apache Commons를 사용합니다.

수입품org.apache.commons.lang3.StringUtils;

private void getId(String pdfName){
    String[] tokens = StringUtils.split(pdfName, "-.");
}

지정된 구분자 중 하나로 분할됩니다.StringUtils.splitByWholeSeparator(str, separator)완전한 문자열을 구분자로 사용합니다.

String[] token=s.split("[.-]");

pdfName.split("[.-]+");

  • [.-]-> 다음 중 하나.또는-구분자로 사용할 수 있습니다.

  • +부호는 앞에서 말한 구분자가 연속적으로 발생할 경우 구분자를 하나로 취급해야 함을 나타냅니다.

다음과 같은 것을 사용하는 것이 좋습니다.

s.split("[\\s\\-\\.\\'\\?\\,\\_\\@]+");

샘플로 몇 개의 다른 문자를 추가했습니다.이게 가장 안전한 방법이에요. 왜냐하면.그리고.'치료됩니다.

split() 메서드에서 정규 표현을 인수로 지정할 수도 있습니다.아래의 예를 참조해 주세요.

private void getId(String pdfName){
String[]tokens = pdfName.split("-|\\.");
}

다음 코드를 사용해 보십시오.

var string = 'AA.BB-CC-DD.zip';
array = string.split(/[,.]/);
s.trim().split("[\\W]+") 

작동해야 합니다.

스팅이 항상 같은 형식인 것을 알고 있는 경우는, 우선, 다음에 근거해 스트링을 분할합니다..변수의 첫 번째 인덱스에 문자열을 저장합니다.다음으로 두 번째 인덱스의 문자열을 분할합니다.-인덱스 0, 1, 2를 저장합니다.마지막으로 이전 어레이의 인덱스 2를 분할합니다..관련 필드를 모두 취득해 둘 필요가 있습니다.

다음의 스니펫을 참조해 주세요.

String[] tmp = pdfName.split(".");
String val1 = tmp[0];
tmp = tmp[1].split("-");
String val2 = tmp[0];
...

언급URL : https://stackoverflow.com/questions/5993779/use-string-split-with-multiple-delimiters

반응형