stringtokenizer(stringtokenizer和string的区别)
4. stringtokenizer类的主要用途是什么? 该类有哪几个重要的方法?
StringTokenizer 是一个Java的类,属于 java.util 包,用来分割字符串和枚举类型。
StringTokenizer 构造方法:
1. StringTokenizer(String str) :构造一个用来解析 str 的 StringTokenizer 对象。使用默认的分隔符:空格("")、制表符(\t)、换行符(\n)、回车符(\r)。
2. StringTokenizer(String str, String delim) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符。
3. StringTokenizer(String str, String delim, boolean returnDelims) :构造一个用来解析 str 的 StringTokenizer 对象,并提供一个指定的分隔符,同时,指定是否返回分隔符。
StringTokenizer 常用方法:
1. int countTokens():返回nextToken方法被调用的次数。可以用来计算字符串分割单元的个数。
2. boolean hasMoreTokens():返回是否还有分隔符。可以用来判断,字符串分割有没有处理完。
3. boolean hasMoreElements():判断枚举 (Enumeration) 对象中是否还有数据。用来判断枚举类型有没有处理完。
4. String nextToken():返回从当前位置到下一个分隔符的字符串。
5. Object nextElement():返回枚举 (Enumeration) 对象的下一个元素。
6. String nextToken(String delim):与 4 类似,以指定的分隔符返回结果。
StringTokenizer
public class StringTokenizerTest {
public static void main(String[] args) {
String a = "a b c";
StringTokenizer s = new StringTokenizer(a,"\t",false);
System.out.println(s.toString());
while(s.hasMoreTokens()){
String temp = s.nextToken();
System.out.print("|"+temp+"|");
System.out.println(temp.length());
}
System.out.println("-------------------------");
String[] ss = a.split("\t");
for(String temp:ss){
System.out.print("|"+temp+"|");
System.out.println(temp.length());//这里在前后2个tab的情况下得到的string对象的长度是0,可以判断了
}
}
}
==============================
java.util.StringTokenizer@192d342
|a|1
|b|1
|c|1
-------------------------
|a|1
||0
|b|1
|c|1
字符串a的定义是这样的:
‘a’+tab+tab+‘b’+tab+‘c’
Java, Stringtokenizer和String split有什么区别?
二者都可以用于分割字符串。
但StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。JDK建议使用 String 的 split 方法或java.util.regex 包。
而有实验表明StringTokenizer 性能更高些。
求StringTokenizer的用法
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
使用正则表达式很容易的
String input=“aZ8sd★yu” ;
String []result = input.split"^[a-zA-Z]";
好久没用正则表达式了,也不知道正确不正确。。。
希望对你有所帮助
string tokenizer 类允许应用程序将字符串分解为标记。tokenization 方法比 StreamTokenizer 类所使用的方法更简单。StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释。
可以在创建时指定,也可以根据每个标记来指定分隔符(分隔标记的字符)集合。
StringTokenizer 的实例有两种行为方式,这取决于它在创建时使用的 returnDelims 标志的值是 true 还是 false:
如果标志为 false,则分隔符字符用来分隔标记。标记是连续字符(不是分隔符)的最大序列。
如果标志为 true,则认为那些分隔符字符本身即为标记。因此标记要么是一个分隔符字符,要么是那些连续字符(不是分隔符)的最大序列。
StringTokenizer 对象在内部维护字符串中要被标记的当前位置。某些操作将此当前位置移至已处理的字符后。
通过截取字符串的一个子串来返回标记,该字符串用于创建 StringTokenizer 对象。
下面是一个使用 tokenizer 的实例。代码如下:
StringTokenizer st = new StringTokenizer("this is a test");
while (st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
输出以下字符串:
this
is
a
test
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
下面的示例阐明了如何使用 String.split 方法将字符串分解为基本标记:
String[] result = "this is a test".split("\\s");
for (int x=0; xresult.length; x++)
System.out.println(result[x]);
输出以下字符串:
this
is
a
test