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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎tv在线观看884aa | 99久久久久国产 | 久久中文字幕无线观看 | np小说h| 91麻豆精品 | 91tv在线| 小莹的性荡生活45章 | 四虎精品视频在线永久免费观看 | 日本xxxxx18护士xxx| 男生和女生搞逼逼 | 奇米9999| 亚洲精品国产自在现线最新 | 日韩大片在线播放 | 欧美vpswindows动物 | 青青成人福利国产在线视频 | 婷婷精品| 亚洲激情欧美 | 99久久精品免费观看区一 | 毛片网站大全 | 情欲综合网 | 免费看www | 国产精品性视频免费播放 | 亚洲成年男人的天堂网 | 亚洲区精品 | 欧美午夜视频一区二区三区 | 亚洲国产成人在人网站天堂 | 极品丝袜乱系列在线阅读 | 丝袜足控免费网站xx动漫漫画 | 精品久久香蕉国产线看观看麻豆 | 日本高清视频一区二区 | 色婷综合 | 亚洲 日本 中文字幕 制服 | 日韩高清在线免费观看 | ts人妖系列在线专区 | 日本一区二区三区视频在线观看 | 黑帮大佬与我的365天2标清中文 | 狠狠色成人综合 | 色哟哟观看 | 校花被吃奶还摸下面 | 西施打开双腿下面好紧 | 色欲麻豆国产福利精品 |