老革命碰到新问题,郁闷的说。大家帮我解决一下。

asweiren 2005-01-12 09:31:51
String a="a|b";
String[] b=a.split("|");
System.out.println(b.length);

结果是4

如果改为String a="a,b";或者用其他分割符号,都正确的。
唯独用"|"这个分割符号就出现错误。结果都是空的。

有谁知道为什么啊???
我想用“|”做为分割符号。有谁帮我解决一下
...全文
186 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangsheng1028 2005-01-16
  • 打赏
  • 举报
回复
正则。怎么用,有没有类似的资料呢?
lifeiqhp 2005-01-16
  • 打赏
  • 举报
回复
其实自己写一个也不用多久的,可以通用的,我测试过,性能也很高的
/**
* 把一个字符串按tag分割成一个一维数组
* @param source 原字符串
* @param tag 分割标记
* @return 一维数组
*/
public static String[] String2Array(String source, String tag) {
List list = new LinkedList();
for (int i = source.indexOf(tag); i != -1; i = source.indexOf(tag)) {
list.add(source.substring(0, i));
source = source.substring(i + tag.length(), source.length());
}
list.add(source);
return (String[]) list.toArray(new String[0]);
}
码农来者 2005-01-16
  • 打赏
  • 举报
回复
对哦,我上次还遇到了如果分割“.”,它是不能识别的,是不是使用“\\.”就可以了呢?
htt80 2005-01-15
  • 打赏
  • 举报
回复
用\\是不是通用的呢?
loucai 2005-01-15
  • 打赏
  • 举报
回复
学习
不一般的凡 2005-01-15
  • 打赏
  • 举报
回复
分隔“\”,要用到“\\\\”
zealVampire 2005-01-15
  • 打赏
  • 举报
回复
可能split是利用政则实现分割的
那么StringTokenizer好像就不存在这个问题?
htt80 2005-01-15
  • 打赏
  • 举报
回复
没人知道吗?
htt80 2005-01-15
  • 打赏
  • 举报
回复
刚刚发现这样的问题:分隔“\”呢?如:"a\b"
两种方法都不行哦!
yqj2065 2005-01-14
  • 打赏
  • 举报
回复
正则,绝对是个好东西
danceflash 2005-01-12
  • 打赏
  • 举报
回复
正则,绝对是个好东西,呵呵 ^_^
不一般的凡 2005-01-12
  • 打赏
  • 举报
回复
不完全正确,如果是^用[^]的形式就不对,正确的做法是用反斜杠来标明,在Java里就是用双斜杠\\做前缀
asweiren 2005-01-12
  • 打赏
  • 举报
回复
问题已经解决。谢谢楼上的各位
特殊字符需要用split("[|]")才行。
superfishmanweb 2005-01-12
  • 打赏
  • 举报
回复
学习!!做了半年的java我还真的没有用过split,看来是好东西.
不一般的凡 2005-01-12
  • 打赏
  • 举报
回复
split的分隔串是正则表达式,要注意这些特殊符号
不一般的凡 2005-01-12
  • 打赏
  • 举报
回复
String[] b=a.split("\\|");

62,614

社区成员

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

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