小弟有一事不明,请大侠拆解(关于String.split())

dabaocsdn 2004-07-06 10:26:33
程序如下:
String results[] = "PC \\ DOS \\ OS-2 \\ UNIX".split(" \\\\ ");
for(int i = 0; i < results.length; i++) {
System.out.println(results[i]);
}
想要的结果如下:
PC
DOS
OS-2
UNIX
使用的正则表达式为:" \\\\ "
我看了Java的文档,试了很多都不行,这个可以,不知道为什么
想求个甚解,请大侠教我。
...全文
227 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Banned 2004-07-06
  • 打赏
  • 举报
回复
"\\\\"表示真正意义上的两杠"\\",
在正则表达式中要表示一个杠,得用"\\".

于是,当我们在书写程序时的"\\\\"在程序编译后即为
真正的两杠"\\",而这真正的两杠传入正则表达式时,
正则表达式把这两杠解释成真正意义上的字符一杠"\",
这一杠正是你所需要的那个分隔符。

在正则表达式的写法中,"\"是转义字符,要表达真正意义上
的'\'字符,在正则表达式的写法中应写成两杠"\\",
而在我们书写代码的时候,因为"\"在书写代码时也是
转义字符,所以为了表达这两杠"\\",书写时就书写成了四个杠了
"\\\\"
dabaocsdn 2004-07-06
  • 打赏
  • 举报
回复
我已经结贴了,大家收到分了没?
dabaocsdn 2004-07-06
  • 打赏
  • 举报
回复
再次感谢各位的帮助
dabaocsdn 2004-07-06
  • 打赏
  • 举报
回复
明白了,多谢多谢,原来是这么回事,呵呵,这个是问题的关键,再次感谢。
skyboy0720 2004-07-06
  • 打赏
  • 举报
回复
楼主明白了吧!!
skyboy0720 2004-07-06
  • 打赏
  • 举报
回复
因为输出的时候,"\"这个符号才起到转义的作用
dabaocsdn 2004-07-06
  • 打赏
  • 举报
回复
可是在我的字符串中"PC \\ DOS \\ OS-2 \\ UNIX"
词之间只有一个"\\",这个应该表示一个'\'吧,为什么要两个"\\"即"\\\\"来匹配呢?
GaryZhu 2004-07-06
  • 打赏
  • 举报
回复
\在字符串中代表换码序列的开始,\\代表\,\'代表',\"代表",\b代表空格,\n代表换行

所以"\\"实际代表的是\,"\\\\"代表的是\\
flyforlove 2004-07-06
  • 打赏
  • 举报
回复
" \\\\ "中第一个'\'和第三个'\'都是转意字符,其实输出的话就是\\
dabaocsdn 2004-07-06
  • 打赏
  • 举报
回复
我想问" \\\\ "这个是什么意思
举个例子来说:
为什么" \\ "就不可以。
qjhaaaaa 2004-07-06
  • 打赏
  • 举报
回复
StringTokenizer st = new StringTokenizer("PC \\ DOS \\ OS-2 \\ UNIX","\\\\");
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
skyboy0720 2004-07-06
  • 打赏
  • 举报
回复
不明白你要问什么!

62,623

社区成员

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

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