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

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

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

前言

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

一、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";
  // 注意要加\\,要不出不來(lái),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è)字符串分開(kāi)。這樣就把字符串分成了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é)

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

相關(guān)文章

  • MyBatis中#{}和${}有哪些區(qū)別

    MyBatis中#{}和${}有哪些區(qū)別

    大家好,本篇文章主要講的是MyBatis中#{}和${}區(qū)別,感興趣的同學(xué)趕快來(lái)看一看,對(duì)你有幫助的話記得收藏一下,方向下次瀏覽
    2021-12-12
  • Spring中@ConfigurationProperties的用法解析

    Spring中@ConfigurationProperties的用法解析

    這篇文章主要介紹了Spring中@ConfigurationProperties的用法解析,傳統(tǒng)的Spring一般都是基本xml配置的,后來(lái)spring3.0新增了許多java config的注解,特別是spring boot,基本都是清一色的java config,需要的朋友可以參考下
    2023-11-11
  • Java利用endorsed如何覆蓋jdk提供的類詳解

    Java利用endorsed如何覆蓋jdk提供的類詳解

    這篇文章主要給大家介紹了關(guān)于Java利用endorsed如何覆蓋jdk提供的類的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • 關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼

    關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼

    今天小編就為大家分享一篇關(guān)于Selenium的UI自動(dòng)化測(cè)試屏幕截圖功能實(shí)例代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼驗(yàn)證登陸校驗(yàn)功能詳解

    SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼驗(yàn)證登陸校驗(yàn)功能詳解

    驗(yàn)證碼作為一種自然人的機(jī)器人的判別工具,被廣泛的用于各種防止程序做自動(dòng)化的場(chǎng)景中。傳統(tǒng)的字符型驗(yàn)證安全性已經(jīng)名存實(shí)亡的情況下,各種新型的驗(yàn)證碼如雨后春筍般涌現(xiàn),今天給大家分享一篇SpringBoot實(shí)現(xiàn)滑塊驗(yàn)證碼
    2022-09-09
  • SpringBoot文件上傳接口并發(fā)性能調(diào)優(yōu)

    SpringBoot文件上傳接口并發(fā)性能調(diào)優(yōu)

    在一個(gè)項(xiàng)目現(xiàn)場(chǎng),文件上傳接口(文件500K)QPS只有30,這個(gè)并發(fā)性能確實(shí)堪憂,此文記錄出坑過(guò)程,文中通過(guò)代碼示例講解的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-06-06
  • Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細(xì)教程

    Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細(xì)教程

    這篇文章主要介紹了Intelli IDEA安裝Scala插件并安裝Scala軟件和配置環(huán)境變量的詳細(xì)教程,需要的朋友可以參考下
    2020-10-10
  • 使用Maven打包、發(fā)布、配置版本號(hào)命令

    使用Maven打包、發(fā)布、配置版本號(hào)命令

    在軟件開(kāi)發(fā)過(guò)程中,打包和發(fā)布是關(guān)鍵步驟,本文介紹了如何在打包和發(fā)布時(shí)跳過(guò)測(cè)試,如何指定項(xiàng)目版本號(hào),以及如何指定配置文件,提供了實(shí)用的技巧和方法,希望對(duì)開(kāi)發(fā)者有所幫助
    2024-09-09
  • java中分組統(tǒng)計(jì)的三種實(shí)現(xiàn)方式

    java中分組統(tǒng)計(jì)的三種實(shí)現(xiàn)方式

    這篇文章主要介紹了java中分組統(tǒng)計(jì)的三種實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser

    這篇文章主要為大家詳細(xì)介紹了Maven項(xiàng)目部署到Jboss出現(xiàn)Failed to create a new SAX parser的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11

最新評(píng)論