遗留类和接口是在早期版本的 Java 中形成Collection Framework 的类和接口,以及现在如何进行重组或重新设计的。字符串的拆分本质上是在给定正则表达式的匹配项周围打破字符串。
在 java 中可以通过多种方式分割字符串,但最常见的两种方式是使用:
- StringTokenizer()
- split()方法
The split() method is preferred and recommended even though it is comparatively slower than StringTokenizer.This is because it is more robust and easier to use than StringTokenizer.
1.字符串分词器
通过获取用于创建 StringTokenizer 对象的字符串的子字符串来返回令牌。 StringTokenizer 对象在内部维护要标记化的字符串中的当前位置。
它有 3 个构造函数:
- StringTokenizer(String str)
- StringTokenizer(String str, String delimiter)
- StringTokenizer(字符串 str、字符串 delim、布尔标志)
这里,
- str:要标记化的字符串
- 分隔符:用于标记字符串的分隔符(+、/等)
- flag:决定是否将分隔符视为标记(True/False)
Java
// Java program to demonstrate working of StringTokenizer()
import java.util.*;
class GFG {
public static void main(String[] args)
{
String str = "This is geek";
StringTokenizer st = new StringTokenizer(str, " ");
// counting tokens
System.out.println("Total tokens : "
+ st.countTokens());
// checking tokens
for (int i = 0; st.hasMoreTokens(); i++)
System.out.println("#" + i + ": "
+ st.nextToken());
}
}
输出
Total tokens : 3 #0: This #1: is #2: geek
2.Split()字符串法
string split() 方法在给定正则表达式的匹配项周围中断给定字符串。
Java 中的 split() 方法有 2 个变体:
- 字符串类方法
public String [ ] split ( String regex, int limit ) Here, split(): method to split stri regex:a delimiting regular expression limit:the result threshold
- 使用java.util.regex包
public String[] split(String regex) Here, split(): method to split string regex:a delimiting regular expression limit: default is 0
Java
// Java program to demonstrate split()
import java.util.*;
class GFG {
public static void main(String[] args)
{
String str = " This is geek";
String[] split = str.split(" ");
for (int i = 0; i < split.length; i++)
System.out.println("#" + i + ": " + split[i]);
}
}
输出
#0: #1: This #2: #3: is #4: #5: geek
Difference Between StringTokenizer and Split Method in Java
StringTokenizer | Split() |
---|---|
它是一个 允许应用程序将字符串分解为标记的遗留类。 | 它是 String 类或 java.util.regex 包的一种方法,用于围绕给定正则表达式的匹配项拆分此字符串。 |
它一次返回一个子字符串。 | 它返回一个子字符串数组。 |
它不能很好地处理空字符串。 | 它可以处理空字符串 当你需要解析空标记时,例如蚂蚁, 蝙蝠, 拍 |
它相对来说不太健壮,而且语法上也比较挑剔。 | 它更强大并且具有简单的语法。 |
它只接受一个字符串,通过它来分割字符串 | 它接受正则表达式。 |
分隔符只有一个字符长。 | 分隔符是一个正则表达式。 |
它本质上是为了提取由固定子字符串分隔的标记而设计的。 | 它本质上是为了解析来自程序外部的文本数据,比如来自文件或来自用户。 |
由于这个限制,大约 速度是split()的两倍。 | 比StringTokeniser慢 |
由带有参数的构造函数组成,该参数允许您指定可能的分隔符。 | 没有构造函数。 |
相关用法
- Java StringTokenizer countTokens()用法及代码示例
- Java StringTokenizer hasMoreElements()用法及代码示例
- Java StringTokenizer hasMoreTokens()用法及代码示例
- Java StringTokenizer nextElement()用法及代码示例
- Java StringTokenizer nextToken()用法及代码示例
- Java StringTokenizer用法及代码示例
- Java String compareToIgnoreCase()用法及代码示例
- Java String compareTo()用法及代码示例
- Java String split()用法及代码示例
- Java String length()用法及代码示例
- Java String replace()用法及代码示例
- Java String replaceAll()用法及代码示例
- Java String substring()用法及代码示例
- Java String equals()用法及代码示例
- Java String equalsIgnoreCase()用法及代码示例
- Java String contains()用法及代码示例
- Java String indexOf()用法及代码示例
- Java String trim()用法及代码示例
- Java String charAt()用法及代码示例
- Java String toLowerCase()用法及代码示例
- Java String concat()用法及代码示例
- Java String valueOf()用法及代码示例
- Java String matches()用法及代码示例
- Java String startsWith()用法及代码示例
- Java String endsWith()用法及代码示例
注:本文由纯净天空筛选整理自jelonmusk大神的英文原创作品 Difference Between StringTokenizer and Split Method in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。