java字符串斜杠的困惑

大狗狗 2012-06-07 01:51:27
先前用微软的VisualStudio时,'/'表示其本意,而'\'用来转义,如果想表示'\'字符本身需要用'\\'。正则表达式中则需要用@"\\"或"\\\\"

java的网上查了下资料,大部分文章说'/'用来转义,有的说'\'用来转义。最后一篇文章给我启发说windows下用'\'转义,unix和linux下用'/'转义。我自己在eclipse里试了下,写一个正则表达式,发现和VisualStudio里一样。我用的系统是XP。正则表达式用来匹配路径未尾的文件名:
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\\/]+$");

意思是如果我把eclipse安装在linux系统下,正则就得写成:
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("[^\//]+$");是这个样子么?
晕啦,求指点
...全文
843 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
张自强 2012-06-07
  • 打赏
  • 举报
回复 1
问题要知道本质,你首先混淆了两个概念,
第一,转移字符部分平台,部分系统,是java的jvm的规范,只跟虚拟机有关系,跟操作系统无关。
第二,跟操作系统有关的是文件系统,linux和window的文件系统不一样,他们规范不一样,路径不一样。
第三,转移字符和路径没关系,在什么时候转义都是\,至于为什么有时候要写\\,是因为我们希望输出\说以就是\\。
这么说明白了吗?

http://www.happyalaric.com
wutaikui555 2012-06-07
  • 打赏
  • 举报
回复
只要是C系列的语言,转移字符都是\,java也是C系列的呢
軒轅劍 2012-06-07
  • 打赏
  • 举报
回复
\ java里的转义字符,应该和系统没有关系,如果有关系的话,那java还敢称作跨平台语言么

  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

谢谢,我是搞不清楚java中字符串转义字符到底是什么
[/Quote]
是\
以输出一段话为例:
需要输出的话:the java say:"hello world!"
双引号在java中是表示字符串的,如果不转义,则无法输出显示,所以需要用到转义符
System.out.print("the java say:\"hello world\"");这样就能输出双引号了
大狗狗 2012-06-07
  • 打赏
  • 举报
回复
谢谢,我是搞不清楚java中字符串转义字符到底是什么
sjmhai 2012-06-07
  • 打赏
  • 举报
回复
应该要换过来的。
  • 打赏
  • 举报
回复
lz主要的疑惑是M windows和linux的文件路径分隔符不一样导致的,是这样么?
java中File.separator可以获取文件路径分隔符,建议这么来获得,提高可移植性及容错
M Windows下为 "\\"
Linux下位 "/"(这俩个都为一个char,但返回的是一个String)
yuppy 2012-06-07
  • 打赏
  • 举报
回复
试下不就行了。。。。

62,621

社区成员

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

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