Java에서 문자열을 분할하는 두 가지 방법 인스턴스 상세 정보
자바 프로그래밍에서 때때로 우리는 문자열을 특정한 문자열, 자모 등에 따라 절단점으로 이 문자열을 분할해야 한다. 그러면 우리는 이 문자열의 일부분을 사용하거나 모든 캡처한 내용을 여러 그룹에 저장할 수 있다.다음 글은 두 가지 분할 방법을 공유했습니다. 다음은 함께 살펴보겠습니다.
하나,java.lang.String의 split () 메서드, JDK 1.4 or later
public String[] split(String regex,int limit)
예제 코드
public class StringSplit {
public static void main(String[] args) {
String sourceStr = "1,2,3,4,5";
String[] sourceStrArray = sourceStr.split(",");
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
// 3
int maxSplit = 3;
sourceStrArray = sourceStr.split(",", maxSplit);
for (int i = 0; i < sourceStrArray.length; i++) {
System.out.println(sourceStrArray[i]);
}
}
}
출력 결과:
1
2
3
4
5
1
2
3,4,5
split의 직접 호출된 matcher 클래스의 split를 실현하는 방법입니다.String.split
방법으로 문자열을 구분할 때, 구분자가 특수한 문자를 사용하면 우리가 예상한 결과를 얻지 못할 수 있습니다.정규 표현식에 특수한 의미가 있는 문자는 우리가 사용할 때 반드시 전의를 해야 한다. 예:
public class StringSplit {
public static void main(String[] args) {
String value = "192.168.128.33";
// \\, ,yeah
String[] names = value.split("\\.");
for (int i = 0; i < names.length; i++) {
System.out.println(names[i]);
}
}
}
split 구분자 요약1."|", "*", "+"문자는 모두 이스케이프 문자를 붙여야 하고, 앞에는 "\"를 붙여야 한다.
2."\"이면 "\\\\"로 써야 합니다.
3.문자열에 여러 개의 구분자가 있는 경우 "|"를 하이픈으로 사용할 수 있습니다.
예를 들어
String str = "Java string-split#test"
, Str.split(" |-|#")
로 모든 문자열을 분리할 수 있다.이렇게 해서 문자열을 세 개의 하위 문자열로 나누었다.2. 자바.util.Tokenizer JDK 1.0 or later
StringTokenizer
StringTokenizer 클래스는 프로그램이 문자열을 태그로 분해할 수 있도록 합니다.StringTokenizer는 호환성 때문에 보류된 유류 (새 코드에서는 사용하지 않지만) 입니다.이 기능을 찾는 모든 사람들에게 String의 split 방법이나java를 사용하도록 권장합니다.util.regex 패키지.코드 예제
public class StringSplit {
public static void main(String[] args) {
String ip = "192.168.128.33";
StringTokenizer token=new StringTokenizer(ip,".");
while(token.hasMoreElements()){
System.out.print(token.nextToken()+" ");
}
}
}
그러나 StringTokenizer는 문자열 "192.168..33"의 분할에 대해 되돌아오는 문자열 수조는 3개의 요소만 있고 두 구분자 사이의 빈 문자열은 무시합니다. 이것은 신중하게 사용해야 합니다.그러나
String.split
String.split
는 정규 표현식으로 일치하기 때문에 KMP 문자열 일치 알고리즘을 사용하지 않는다) 순서대로 훑어보는 알고리즘으로 시간 복잡도 O(m*n)가 비교적 높기 때문에 성능상 StringTokenizer가 훨씬 좋다. 문자열 분할을 자주 사용하는 응용, 예를 들어 etl 데이터 처리, StringTokenizer를 사용하면 성능을 많이 향상시킬 수 있다.총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 어느 정도 도움이 되고 의문이 있으면 댓글로 교류하시기 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.