Java에서 문자열을 분할하는 두 가지 방법 인스턴스 상세 정보

앞말
자바 프로그래밍에서 때때로 우리는 문자열을 특정한 문자열, 자모 등에 따라 절단점으로 이 문자열을 분할해야 한다. 그러면 우리는 이 문자열의 일부분을 사용하거나 모든 캡처한 내용을 여러 그룹에 저장할 수 있다.다음 글은 두 가지 분할 방법을 공유했습니다. 다음은 함께 살펴보겠습니다.
하나,java.lang.String의 split () 메서드, JDK 1.4 or laterpublic 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 laterStringTokenizerStringTokenizer 클래스는 프로그램이 문자열을 태그로 분해할 수 있도록 합니다.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.splitString.split는 정규 표현식으로 일치하기 때문에 KMP 문자열 일치 알고리즘을 사용하지 않는다) 순서대로 훑어보는 알고리즘으로 시간 복잡도 O(m*n)가 비교적 높기 때문에 성능상 StringTokenizer가 훨씬 좋다. 문자열 분할을 자주 사용하는 응용, 예를 들어 etl 데이터 처리, StringTokenizer를 사용하면 성능을 많이 향상시킬 수 있다.
총결산
이상은 바로 이 글의 전체 내용입니다. 본고의 내용이 여러분의 학습이나 업무에 어느 정도 도움이 되고 의문이 있으면 댓글로 교류하시기 바랍니다.

좋은 웹페이지 즐겨찾기