StringTokenizer的怪现象

superrg 2003-08-19 09:01:41
StringTokenizer stRcpt = new StringTokenizer("mail@mailserver","@@");

stRcpt.nextToken()
竟然返回
mail
mailserver
而不是期望的
mail@mailserver
何解??

...全文
84 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
superrg 2003-08-19
  • 打赏
  • 举报
回复
to shine333(shine):
难难难
结贴了
shine333 2003-08-19
  • 打赏
  • 举报
回复
干吗要拿字符串当分隔符,找一些冷僻的字符,不可以吗,
要知道unicode的最多可以有2^16=65536个哪,我想总有几个适合你
cbhyk 2003-08-19
  • 打赏
  • 举报
回复
public static String[] split(String s, String separator)
{
if(s == null)
throw new NullPointerException("source String cannot be null");
if(separator == null)
throw new NullPointerException("separator cannot be null");
if(separator.length() == 0)
throw new IllegalArgumentException("separator cannot be empty");

ArrayList tmp = new ArrayList();
int start = 0;
int separatorLen = separator.length();
int end = s.indexOf(separator);
while(end != -1)
{
tmp.add(s.substring(start, end));
start = end + separatorLen;
end = s.indexOf(separator, start);
}
tmp.add(s.substring(start, s.length()));
String[] result = new String[tmp.size()];
tmp.toArray(result);
return result;
}

public static void main(String[] args)
{
String[] result = split("a,,b,c,,d", ",");
for(int i=0; i<result.length; i++)
System.out.println(result[i]);
}
superrg 2003-08-19
  • 打赏
  • 举报
回复
to ticlej(ticlej):
没有解决办法吗??
ticlej 2003-08-19
  • 打赏
  • 举报
回复
老大,在StringTokenizer stRcpt = new StringTokenizer("mail@mailserver","@@");
中,"@@"是个终止付串.它的每个字符都是终止附;
"@_ ,"这个字符串代表:'@',',',' ','_'这四个字符都是终止符.
superrg 2003-08-19
  • 打赏
  • 举报
回复
晕,那有没有按字符串分隔的??
cbhyk 2003-08-19
  • 打赏
  • 举报
回复
delimiters (the characters that separate tokens)
StringTokenizer是按delimiters中的每一个字符分解的, 如StringTokenizer st = new StringTokenizer("a3bc1def1gh", "13"); 分解的结果是a,bc,def,gh

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧