A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 朱皓 中级黑马   /  2012-2-19 22:07  /  2641 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我们在平时定义字符串的时候是这样的

String str="boke";

有时我们也需要路径的字符串例如:

String str="D:\朱皓\张孝祥高级技术";

但是这样的字符串是不行的,因为 \ 代表了转义,所以我们因该这样来表示

String str="D:\\朱皓\\张孝祥高级技术";

用两个 \\ 来表示一个 \

但是问题又来了,如果路径很长,又或者字符串中有很多的 \ ,难道我们要每一个去改成 \\ 吗?

据我所知在C#中中就提供了一种很好的表示形式,例如:

String str=@"D:\朱皓\张孝祥高级技术";

字符串前面的@符号表示后面的字符串是一个完整的字符串其中没有转义符号,那么我们就不需要用\\来表示\

我不知道在JAVA中有没有这样的表示方法。如果没有自己可不可以用写代码的方式实现这种机制。

求广大网友给予解答

8 个回复

倒序浏览
java中应该是没有这种机制吧!帮你顶
回复 使用道具 举报
java里面有很多规范是不能改了,这是为了平台的可移植性强而规定的,虽然楼主提出的建议很好,但是java毕竟不是c#,在转义字符中,java的规范就是加\,没有其他方法,楼主既然要学java,就不要钻牛角尖了,好好记住规范吧
回复 使用道具 举报
个人觉得跟系统属性有关,,,我们如果用System的getProperties方法,可以获取系统的目录视为默认seperator,就是分隔符,,windows系统的默认目录分隔符就是\,,正好和转义字符\一样,,所以在遇到分隔符的时候都要转,,,,可能在其他系统下就不需要这样蛋疼的操作了吧
回复 使用道具 举报
对于路径中\在File类中定义一个常量用于表示了。是Fille.separator
回复 使用道具 举报
在C#中可以如下表示:
String str=@"D:\朱皓\张孝祥高级技术";
在java中只能如下表示:
String str="D:\\朱皓\\张孝祥高级技术";
因为一个是java,一个是C#.不同的语言,自然有不同的规范.
回复 使用道具 举报
朱皓 中级黑马 2012-2-21 15:35:15
7#
我觉得不管是JAVA还是C#,只要是好的方法和机制,我都可以借鉴
回复 使用道具 举报
这个嘛,问题很棒啊,受教了
不过如果是传入的参数就好了   ,  比如  运行时传入一个路径参数  。
可以  这样的:
String  str =  args[0].replaceAll("\\\\","\\\\\\\\");
这样 字符串 str 都达到了你的要求了,
回复 使用道具 举报
这个没有这个机制
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马