构造方法摘要
StringTokenizer(String str) 为指定字符串构造一个 string tokenizer。(默认 " \t\n\r\f" 作为分隔符,默认为false)
StringTokenizer(String str, String delim) 为指定字符串构造一个 string tokenizer。(默认flase)
StringTokenizer(String str, String delim, boolean returnDelims) 为指定字符串构造一个 string tokenizer。
方法摘要
int countTokens() 计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。(nextToken()在nextToken()调用才会变化,)
boolean hasMoreElements() 返回与 hasMoreTokens 方法相同的值。 (就是调用hasMoreTokens 方法 )
boolean hasMoreTokens() 测试此 tokenizer 的字符串中是否还有更多的可用标记。
Object nextElement() 除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。 (调用的nextToken() 方法)
String nextToken() 返回此 string tokenizer 的下一个标记。
String nextToken(String delim) 返回此 string tokenizer 的字符串中的下一个标记。 ( 如果在new StringTokenizer(str)没有给 delim参数, 那么 nextToken(delim)等于 new StringTokenizer(str,delim),如果new StringTokenizer(str,delim),就会代替 delim。)
注: 比如
String str = "a123a234a345";
String str1 = "123a234a345";
String str2 = "123a234a345a";
StringTokenizer st = new StringTokenizer(str,"a");
StringTokenizer st1 = new StringTokenize(str1,"a");
StringTokenizer st2 = new StringTokenize(str2,"a");
st,st1,st2最后会得到3个字符串,分别是 123 ,234, 345。所以使用该类的时候,在这种情况下需要注意头字符和尾字符。
注2: String str = "a123b456ab789";
StringTokenizer st = new StringTokenizer(str,"ab");
按照我以前的思路会得到 a123b456 和 789,但是结果却是 123,456和789.为什么?经过我几个不同字符串的调试,发现 StringTokenizer 会把分割字符串变成char或byte。如"ab".getByte(),一个个去匹配,只要匹配正确,就分割。神坑啊。如果需要到达语气的效果,需要在循环中,处理。感觉,这样太蛋疼。不效率会变笑。不知道那位大牛,能解决下这个问题。
StringTokenizer(String str) 为指定字符串构造一个 string tokenizer。(默认 " \t\n\r\f" 作为分隔符,默认为false)
StringTokenizer(String str, String delim) 为指定字符串构造一个 string tokenizer。(默认flase)
StringTokenizer(String str, String delim, boolean returnDelims) 为指定字符串构造一个 string tokenizer。
方法摘要
int countTokens() 计算在生成异常之前可以调用此 tokenizer 的 nextToken 方法的次数。(nextToken()在nextToken()调用才会变化,)
boolean hasMoreElements() 返回与 hasMoreTokens 方法相同的值。 (就是调用hasMoreTokens 方法 )
boolean hasMoreTokens() 测试此 tokenizer 的字符串中是否还有更多的可用标记。
Object nextElement() 除了其声明返回值是 Object 而不是 String 之外,它返回与 nextToken 方法相同的值。 (调用的nextToken() 方法)
String nextToken() 返回此 string tokenizer 的下一个标记。
String nextToken(String delim) 返回此 string tokenizer 的字符串中的下一个标记。 ( 如果在new StringTokenizer(str)没有给 delim参数, 那么 nextToken(delim)等于 new StringTokenizer(str,delim),如果new StringTokenizer(str,delim),就会代替 delim。)
注: 比如
String str = "a123a234a345";
String str1 = "123a234a345";
String str2 = "123a234a345a";
StringTokenizer st = new StringTokenizer(str,"a");
StringTokenizer st1 = new StringTokenize(str1,"a");
StringTokenizer st2 = new StringTokenize(str2,"a");
st,st1,st2最后会得到3个字符串,分别是 123 ,234, 345。所以使用该类的时候,在这种情况下需要注意头字符和尾字符。
注2: String str = "a123b456ab789";
StringTokenizer st = new StringTokenizer(str,"ab");
按照我以前的思路会得到 a123b456 和 789,但是结果却是 123,456和789.为什么?经过我几个不同字符串的调试,发现 StringTokenizer 会把分割字符串变成char或byte。如"ab".getByte(),一个个去匹配,只要匹配正确,就分割。神坑啊。如果需要到达语气的效果,需要在循环中,处理。感觉,这样太蛋疼。不效率会变笑。不知道那位大牛,能解决下这个问题。