欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中分割字符串的兩種方法實例詳解

 更新時間:2016年12月21日 08:39:48   作者:ggjucheng  
這篇文章主要介紹了Java中分割字符串的兩種方法,一種是java.lang.String 的 split() 方法,,另外一種是用String Tokenizer類。文中的每種方法都給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友們下面來一起看看吧。

前言

相信大家應該都知道在java編程中,有時候我們需要把一個字符串按照某個特定字符、字母等作為截點分割這個字符串,這樣我們就可以使用這個字符串的一部分或者把所有截取的內(nèi)容保存到數(shù)組里等操作。下面這篇文章就給大家分享了兩種分割的方法,下面來一起看看吧。

一、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]);
  }
 }
}

輸出結(jié)果:

1
2
3
4
5
1
2
3,4,5

split 的實現(xiàn)直接調(diào)用的 matcher 類的 split 的方法。在使用String.split方法分隔字符串時,分隔符如果用到一些特殊字符,可能會得不到我們預期的結(jié)果。

在正則表達式中有特殊的含義的字符,我們使用的時候必須進行轉(zhuǎn)義,示例:

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分隔符總結(jié)

     1.字符"|","*","+"都得加上轉(zhuǎn)義字符,前面加上"\\"。

     2.而如果是"\",那么就得寫成"\\\\"。

     3.如果一個字符串中有多個分隔符,可以用"|"作為連字符。

比如:String str = "Java string-split#test",可以用Str.split(" |-|#")把每個字符串分開。這樣就把字符串分成了3個子字符串。

二、java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 類允許應用程序?qū)⒆址纸鉃闃擞?。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"的分割,返回的字符串數(shù)組只有3個元素,對于兩個分隔符之間的空字符串會忽略,這個要慎重使用。

但是String.splitString.split是用正則表達式匹配,所以不使用KMP字符串匹配算法)用的都是按順序遍歷的算法,時間復雜度O(m*n),較高,所以性能上,StringTokenizer好很多,對于頻繁使用字符串分割的應用,例如etl數(shù)據(jù)處理,使用StringTokenizer性能可以提高很多。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評論