stringtokenizer(stringtokenizer和string的区别)

http://www.itjxue.com  2023-02-11 20:29  来源:未知  点击次数: 

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

(责任编辑:IT教学网)

更多

推荐网络媒体文章