一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Java中分割字符串的兩種方法實例詳解

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

2020-07-16 11:53ggjucheng JAVA教程

這篇文章主要介紹了Java中分割字符串的兩種方法,一種是java.lang.String 的 split() 方法,,另外一種是用String Tokenizer類。文中的每種方法都給出了詳細的示例代碼,相信對大家的理解和學習具有一定的參考借鑒價值,有需要的朋友們下

前言

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

一、java.lang.String 的 split() 方法, JDK 1.4 or later

public String[] split(String regex,int limit)

示例代碼

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
6
7
8
1
2
3
4
5
1
2
3,4,5

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

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

?
1
2
3
4
5
6
7
8
9
10
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(" |-|#")把每個字符串分開。這樣就把字符串分成了3個子字符串。

二、java.util.Tokenizer JDK 1.0 or later

StringTokenizer

StringTokenizer 類允許應用程序將字符串分解為標記。StringTokenizer 是出于兼容性的原因而被保留的遺留類(雖然在新代碼中并不鼓勵使用它)。建議所有尋求此功能的人使用 String 的 split 方法或 java.util.regex 包。

代碼示例

?
1
2
3
4
5
6
7
8
9
10
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性能可以提高很多。

總結

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

原文鏈接:http://www.cnblogs.com/ggjucheng/p/3352419.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产中文字幕在线视频综合 | 四虎最新网址在线观看 | 91在线亚洲综合在线 | ai换脸明星造梦工厂忘忧草 | 免费国产福利 | 国产精品片 | 亚洲一区二区三区不卡在线播放 | 日韩亚洲欧美综合一区二区三区 | 日韩欧一级毛片在线播无遮挡 | bl双性受乖调教改造身体 | 苍井空av| 色老板在线 | 日本一区二区高清免费不卡 | 美女厕所尿尿擦逼 | 亚洲 欧美 在线观看 | 校园高h | 亚洲精品黄色 | 91午夜视频 | xxxx俄罗斯大白屁股 | 欧产日产国产精品专区 | 按摩院已婚妇女中文字幕 | 羞羞色男人的天堂伊人久久 | 久久福利影院 | 国产午夜精品久久久久小说 | 色漫在线观看 | 日本一区二区三区国产 | 维修工的调教 | 国产午夜免费 | 国产精品福利在线观看入口 | 亚洲系列第一页 | 国产视频a区 | 538精品视频 | 狠狠色狠狠色综合曰曰 | 久久国产精品永久免费网站 | 99热在线国产 | 亚洲成色www久久网站 | 非洲一级毛片又粗又长aaaa | 男人天堂色 | 密臀tv| 我的青梅竹马是消防员2季未增删免费 | 美女毛片老太婆bbb80岁 |