黑马程序员技术交流社区

标题: 字符串中转义字符处理问题 [打印本页]

作者: 朱皓    时间: 2012-2-19 22:07
标题: 字符串中转义字符处理问题
我们在平时定义字符串的时候是这样的

String str="boke";

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

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

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

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

用两个 \\ 来表示一个 \

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

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

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

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

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

求广大网友给予解答


作者: 王睿    时间: 2012-2-20 18:17
java中应该是没有这种机制吧!帮你顶
作者: 唐溪永    时间: 2012-2-20 21:00
java里面有很多规范是不能改了,这是为了平台的可移植性强而规定的,虽然楼主提出的建议很好,但是java毕竟不是c#,在转义字符中,java的规范就是加\,没有其他方法,楼主既然要学java,就不要钻牛角尖了,好好记住规范吧
作者: 李晓俊老师    时间: 2012-2-20 23:47
个人觉得跟系统属性有关,,,我们如果用System的getProperties方法,可以获取系统的目录视为默认seperator,就是分隔符,,windows系统的默认目录分隔符就是\,,正好和转义字符\一样,,所以在遇到分隔符的时候都要转,,,,可能在其他系统下就不需要这样蛋疼的操作了吧
作者: 【专】【属】    时间: 2012-2-21 08:50
对于路径中\在File类中定义一个常量用于表示了。是Fille.separator
作者: 王康    时间: 2012-2-21 10:19
在C#中可以如下表示:
String str=@"D:\朱皓\张孝祥高级技术";
在java中只能如下表示:
String str="D:\\朱皓\\张孝祥高级技术";
因为一个是java,一个是C#.不同的语言,自然有不同的规范.

作者: 朱皓    时间: 2012-2-21 15:35
我觉得不管是JAVA还是C#,只要是好的方法和机制,我都可以借鉴
作者: tanlei200620    时间: 2012-2-21 17:28
这个嘛,问题很棒啊,受教了
不过如果是传入的参数就好了   ,  比如  运行时传入一个路径参数  。
可以  这样的:
String  str =  args[0].replaceAll("\\\\","\\\\\\\\");
这样 字符串 str 都达到了你的要求了,

作者: 花开~的季节    时间: 2012-2-21 17:38
这个没有这个机制




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2