StringTokenizer是一个用来分隔String的应用类,相当split函数。
String
类的 split()
方法和 java.util.StringTokenizer
类都可以用来拆分字符串,但它们之间有一些重要的区别。
-
返回类型:
split()
方法返回一个字符串数组,其中包含被分割后的子字符串。StringTokenizer
返回的是一个Enumeration
,通过它你可以逐个获取被分割后的子字符串。
-
分隔符:
split()
方法使用正则表达式作为分隔符,这意味着你可以使用更灵活的分隔符模式。StringTokenizer
类只能接受单个字符作为分隔符。
-
处理空字符串:
split()
方法可以处理空字符串,因为你可以定义一个匹配零个字符的正则表达式,例如split("\\s*")
可以处理连续的空格。StringTokenizer
默认情况下不会处理空字符串,但你可以通过构造函数中的第二个参数来指定是否保留空字符串。
-
性能:
- 通常情况下,
split()
方法的性能要比StringTokenizer
更好,因为它使用了编译好的正则表达式引擎来进行字符串拆分。 StringTokenizer
在某些情况下可能更适合处理大量数据,因为它的实现更加轻量级。
- 通常情况下,
-
用途:
- 如果你需要更多的灵活性和功能,比如使用正则表达式,或者需要处理更复杂的字符串分割逻辑,那么
split()
方法更适合。 - 如果你只是需要简单地按照固定的单个字符进行分割,并且关心性能,那么
StringTokenizer
可能更适合。
- 如果你需要更多的灵活性和功能,比如使用正则表达式,或者需要处理更复杂的字符串分割逻辑,那么
综上所述,split()
方法更加灵活和功能丰富,适用于大多数情况。而 StringTokenizer
则更加简单,适用于特定的简单需求或对性能有更高要求的场景。
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) {
String str = "apple,banana,cherry";
// 创建 StringTokenizer 对象,以逗号为分隔符
StringTokenizer tokenizer = new StringTokenizer(str, ",");
// 循环获取每个标记
while (tokenizer.hasMoreTokens()) {
String token = tokenizer.nextToken();
System.out.println("标记: " + token);
}
}
}
String类split函数分割字符串
public class Main {
public static void main(String[] args) {
String str = "apple,banana,cherry,date";
String[] tokens = str.split(",");
for (String token : tokens) {
System.out.println(token);
}
}
}