都会遇到对字符串进行解析的这个问题

时间:2022-05-01 07:33:06

标签:

正斜杠(/)与反斜杠(\)总结

 正斜杠/暗示除法,分隔断绝分手。在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"。