标签:
正斜杠(/)与反斜杠(\)总结正斜杠/暗示除法,分隔断绝分手。在windows系统中凡是用来分隔断绝分手命令行参数,/暗示选项等。不能作为文件名。
反斜杠\,在windows系统顶用来暗示目录。
而在unix系统中,/暗示目录。由于web遵循unix定名,所以在网址(URL)中,/暗示目录。
C#中反斜杠\与斜杠/ 转移字符路径的问题
在C#中 \ 是转义字符,如下所示
转义序列
字符
\’
单引号
\”
双引号
\\
反斜杠
\0
空
\a
警告
\b
退格
\f
换页
\n
换行
\r
回车
\t
程度制表符
\v
垂直制表符
就好比说要输出这一段字符串 “/_\” 可能你会认为是这样写 @""/_\""
但这样写编译器都不让你通过了,但看上表所示,你可以这么写 "\"/_\\\""
此外在获取文件路径的时候 很多人喜欢用 d:\test.txt
然后就会产生所谓的转义字符错误了
解决的步伐一般人是使用 @d:\test.txt 我不知道这样写是否会带来一些问题
但我一直的做法是d:/test.txt 也完全可以访谒
在网上找了下, 似乎斜杠与反斜杠最大的区别就是
网络中不能以斜杠在windows系统中凡是用来分隔断绝分手命令行参数,/暗示选项等。
算术运算符/用来取商,如5/2=2.5
引用说明:有正斜杠与反斜杠之分,正斜杠,一般就叫做斜杠,标记为“/”;反斜杠的标记为“\” 引用斜杠(/)在JAVA中没有什么特另外意义,就是代表一个字符‘/’;
反斜杠(\)则不然,它和紧随着它的阿谁字符组成转义字符,如“\n”(暗示换行)、“\””(暗示字符‘”’)等,所以在字符串中要暗示字符‘\‘要用“\\”来暗示,例:如果你这样界说一个字符串String s = “name\sex”是错误的,要这样界说String s = “name\\sex”;
引用注意:在正则表达式中的“\\”暗示和后面紧随着的阿谁字符组成一个转义字符(临时先这样定名),代表着特殊的意义;所以如果你要在正则表达式中暗示一个反斜杠\,该当写成“\\\\”。如果你这样获得一个Matcher,Matcher m = Pattern.compile(“\\”).matcher(“\\”)将会报错,你该当这样写Matcher m = Pattern.compile(“\\\\”).matcher(“\\”)才是正确且匹配的引用接下来我们来看一下String类中replace(CharSequence target,CharSequence replacement)要领与replaceAll(String regex, String replacement)要领的区别:
public static void main(String[] arg) throws OgnlException {String s ="sdf\\a\\aa"; //把s中的反斜杠\ 替换为\\ System.out.println(s); System.out.println(s.replaceAll("\\\\", "\\\\\\\\")); System.out.println(s.replace("\\", "\\\\"));}
引用可以看出上面两种都返回不异的替换功效。
这 里的关键是String.replaceAll()是用regular expression 来作为参数的。但是java自己的字符串对付转义符\也有类似的措置惩罚惩罚。首先,java会把“\\\\”解释成一个字符串(此中包罗两个char)。接下来,由于replaceAll是以正则表达式作为参数,所以“\\”被解释成一个regex。对付一个regex来说这就代表着一个字符,就是“\”。对后面的阿谁8个\来说,最终会被解释成“\\”。
换言之,假设String.replaceAll()是以普通字符串,而不是regex作为参数,那么这样写代码: String target = source.replaceAll(‘\\‘, ‘\\\\‘); 就可以了。
正斜杠(左斜杠),标记是"http://www.mamicode.com/";反斜杠(右斜杠),标记是"\"。
在Unix/Linux中,,路径的分隔断绝分手给与正斜杠"http://www.mamicode.com/",好比"/home/hutaow";而在Windows中,路径分隔断绝分手给与反斜杠"\",好比"C:\Windows\System"。