亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

前言

相信大家應(yīng)該都知道在java編程中,有時(shí)候我們需要把一個(gè)字符串按照某個(gè)特定字符、字母等作為截點(diǎn)分割這個(gè)字符串,這樣我們就可以使用這個(gè)字符串的一部分或者把所有截取的內(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個(gè)字符串
  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 的實(shí)現(xiàn)直接調(diào)用的 matcher 類的 split 的方法。在使用String.split方法分隔字符串時(shí),分隔符如果用到一些特殊字符,可能會(huì)得不到我們預(yù)期的結(jié)果。

在正則表達(dá)式中有特殊的含義的字符,我們使用的時(shí)候必須進(jìn)行轉(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.如果一個(gè)字符串中有多個(gè)分隔符,可以用"|"作為連字符。

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

二、java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 類允許應(yīng)用程序?qū)⒆址纸鉃闃?biāo)記。StringTokenizer 是出于兼容性的原因而被保留的遺留類(雖然在新代碼中并不鼓勵(lì)使用它)。建議所有尋求此功能的人使用 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對(duì)于字符串"192.168..33"的分割,返回的字符串?dāng)?shù)組只有3個(gè)元素,對(duì)于兩個(gè)分隔符之間的空字符串會(huì)忽略,這個(gè)要慎重使用。

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

總結(jié)

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

相關(guān)文章

最新評(píng)論