研究StringTokenizer及相关

构造方法摘要
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(),一个个去匹配,只要匹配正确,就分割。神坑啊。如果需要到达语气的效果,需要在循环中,处理。感觉,这样太蛋疼。不效率会变笑。不知道那位大牛,能解决下这个问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值