Java中聯系字符串的兩種辦法實例詳解。本站提示廣大學習愛好者:(Java中聯系字符串的兩種辦法實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Java中聯系字符串的兩種辦法實例詳解正文
前言
置信大家應該都知道在java編程中,有時分我們需求把一個字符串依照某個特定字符、字母等作為截點聯系這個字符串,這樣我們就可以運用這個字符串的一局部或許把一切截取的內容保管到數組裡等操作。上面這篇文章就給大家分享了兩種聯系的辦法,上面來一同看看吧。
一、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]); } } }
輸入後果:
1 2 3 4 5 1 2 3,4,5
split 的完成直接調用的 matcher 類的 split 的辦法。在運用String.split
辦法分隔字符串時,分隔符假如用到一些特殊字符,能夠會得不到我們預期的後果。
在正則表達式中有特殊的含義的字符,我們運用的時分必需停止本義,示例:
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 包。
代碼示例
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.split
(String.split
是用正則表達式婚配,所以不運用KMP字符串婚配算法)用的都是按順序遍歷的算法,時間復雜度O(m*n),較高,所以功能上,StringTokenizer好很多,關於頻繁運用字符串聯系的使用,例如etl數據處置,運用StringTokenizer功能可以進步很多。
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或許任務能帶來一定的協助,假如有疑問大家可以留言交流。