문자열 기반을 구분 기호 -
및 로 분리해야합니다 .
. 아래는 내가 원하는 결과입니다.
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 중 하나
]가 -.
아닌
[DASH 와 함께 DOT] -
또는.
답변
이 정규식을 사용해보십시오 "[-.]+"
. + after는 연속 분리 문자를 하나로 취급합니다. 원하지 않는 경우 플러스를 제거하십시오.
답변
정규식 “\ W”를 사용할 수 있습니다. 이는 단어가 아닌 문자와 일치합니다. 필요한 줄은 다음과 같습니다.
String[] tokens=pdfName.split("\\W");
답변
제공 split
하는 문자열은 정규식의 문자열 형식이므로 다음과 같습니다.
private void getId(String pdfName){
String[]tokens = pdfName.split("[\\-.]");
}
즉 , 내부의 특수 문자 이므로 백 슬래시 []
로 이스케이프 처리해야합니다 . 물론 문자열이기 때문에 백 슬래시를 이스케이프 처리해야합니다. (반대로, 일반적으로 특별하지만 내부 에서는 특별 하지 않습니다 .)-
[]
.
[]
답변
구아바 를 사용하면 다음과 같이 할 수 있습니다.
Iterable<String> tokens = Splitter.on(CharMatcher.anyOf("-.")).split(pdfName);
답변
델리 미터 “AND”및 “OR”과 같은 두 문자 시퀀스의 경우이 작업을 수행해야합니다. 사용하는 동안 손질하는 것을 잊지 마십시오.
String text ="ISTANBUL AND NEW YORK AND PARIS OR TOKYO AND MOSCOW";
String[] cities = text.split("AND|OR");
결과 : 도시 = { “ISTANBUL”, “NEW YORK”, “PARIS”, “TOKYO”, “MOSCOW”}
답변
Apache Commons를 사용합니다.
수입 org.apache.commons.lang3.StringUtils;
private void getId(String pdfName){
String[] tokens = StringUtils.split(pdfName, "-.");
}
StringUtils.splitByWholeSeparator(str, separator)
전체 문자열을 구분 기호로 사용 하는 것이 아니라 지정된 구분 기호로 분할됩니다.