
- Java.lang 包類
- Java.lang - 首頁
- Java.lang - Boolean
- Java.lang - Byte
- Java.lang - Character
- Java.lang - Character.Subset
- Java.lang - Character.UnicodeBlock
- Java.lang - Class
- Java.lang - ClassLoader
- Java.lang - Compiler
- Java.lang - Double
- Java.lang - Enum
- Java.lang - Float
- Java.lang - InheritableThreadLocal
- Java.lang - Integer
- Java.lang - Long
- Java.lang - Math
- Java.lang - Number
- Java.lang - Object
- Java.lang - Package
- Java.lang - Process
- Java.lang - ProcessBuilder
- Java.lang - Runtime
- Java.lang - RuntimePermission
- Java.lang - SecurityManager
- Java.lang - Short
- Java.lang - StackTraceElement
- Java.lang - StrictMath
- Java.lang - String
- Java.lang - StringBuffer
- Java.lang - StringBuilder
- Java.lang - System
- Java.lang - Thread
- Java.lang - ThreadGroup
- Java.lang - ThreadLocal
- Java.lang - Throwable
- Java.lang - Void
- Java.lang 包擴充套件
- Java.lang - 介面
- Java.lang - 錯誤
- Java.lang - 異常
- Java.lang 包有用資源
- Java.lang - 有用資源
- Java.lang - 討論
Java - String split() 方法
Java String split() 方法用於將字串分割成一個子字串陣列。此方法接受一個表示正則表示式的字串作為引數,在當前字串中搜索給定的模式,並在每個匹配處分割它。
以匹配給定正則表示式的子字串結尾的字串的每個子字串都包含在結果陣列中。如果表示式與給定字串的任何部分都不匹配,則結果陣列只有一個元素,即給定字串。
此方法的操作方式與使用給定表示式和零限制引數呼叫 split() 方法相同。因此,結果陣列不包含尾隨空字串。
此方法有兩個多型變體。語法如下所示。
語法
以下是Java String split()方法的語法:
public String[] split(String regex) // first syntax or, public String[] split(String regex, int limit) // second syntax
引數
regex − 這是分隔符正則表示式。
limit − 控制模式應用的次數,從而影響結果陣列的長度 // 第二種語法
返回值
此方法返回透過圍繞給定正則表示式的匹配項分割給定字串計算出的字串陣列。
基於分隔符模式分割字串示例
以下示例演示了 Java String split() 方法的使用,透過分割 String 物件並透過向字串提供限制 '3' 來計算標記:
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String str = "a d, m, i.n"; String delimiters = "\\s+|,\\s*|\\.\\s*"; // analyzing the string String[] tokensVal = str.split(delimiters); // prints the count of tokens System.out.println("Count of tokens = " + tokensVal.length); for(String token : tokensVal) { System.out.print(token); } // analyzing the string with limit as 3 tokensVal = str.split(delimiters, 3); // prints the count of tokens System.out.println("\nCount of tokens = " + tokensVal.length); for(String token : tokensVal) { System.out.print(token); } } }
輸出
如果編譯並執行上述程式,它將產生以下結果:
Count of tokens = 5 admin Count of tokens = 3 adm, i.n
基於分隔符模式分割字串示例
在以下示例中,split() 方法用於分割 String 物件並在不向字串提供任何限制的情況下計算標記:
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String str = "a d, m, i.n"; String delimiters = "\\s+|,\\s*|\\.\\s*"; // analyzing the string String[] tokensVal = str.split(delimiters); // prints the number of tokens System.out.println("Count of tokens = " + tokensVal.length); for(String token : tokensVal) { System.out.print(token); } } }
輸出
如果編譯並執行上面的程式,輸出將顯示如下:
Count of tokens = 5 admin
基於分隔符字串分割字串示例
在此示例中,我們使用值“WelcomeLaughtoLaughtutorialsPoint”建立一個 Java String 物件,並且我們嘗試在每次遇到子字串“laugh”時分割此字串。
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String s = "WelcomeLaughtoLaughtutorialsPoint"; String[] splitting = s.split("Laugh"); for (String splt : splitting) { System.out.println(splt); } } }
輸出
在執行上述程式時,輸出如下所示:
Welcome to tutorialsPoint
基於分隔符模式分割字串示例
在這種情況下,我們使用一個單詞初始化 Java String,並嘗試使用字串中的字元進行分割。
package com.tutorialspoint; public class StringDemo { public static void main(String[] args) { String s = "Welcome"; String[] splitting = s.split("l"); // splitting the string on 'l' using the regex for (int i = 0; i < splitting.length; i++) { System.out.println(splitting[i]); } } }
輸出
上述程式的輸出如下:
We come
檢查基於無效模式分割字串時的異常示例
如果語法無效,則分隔符正則表示式將丟擲 PatternSyntaxException。請檢視下面的示例:
public class StringDemo { public static void main(String[] args) { String s = "Welcome to tutorials***Point"; String[] splitting = s.split("***"); // splitting the string on 'l' using the regex for (String text : splitting) { System.out.println(text); } } }
PatternSyntaxException
在執行上述程式碼時,我們得到以下輸出:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0 *** ^ at java.base/java.util.regex.Pattern.error(Pattern.java:2038) at java.base/java.util.regex.Pattern.sequence(Pattern.java:2213) at java.base/java.util.regex.Pattern.expr(Pattern.java:2079) at java.base/java.util.regex.Pattern.compile(Pattern.java:1793) at java.base/java.util.regex.Pattern.(Pattern.java:1440) at java.base/java.util.regex.Pattern.compile(Pattern.java:1079) at java.base/java.lang.String.split(String.java:3149) at java.base/java.lang.String.split(String.java:3195) at StringDemo.main(StringDemo.java:4)