Java 中的反斜线"\"
关于Java中的反斜线一直没有很好透彻的了解过。现在网上看到这样一段文字,觉得说得很对,但也没能完全明白。如下:反斜线‘\’转义和引用在初期运用正则表达式的时候可能竟然因...
关于Java中的反斜线一直没有很好透彻的了解过。
现在网上看到这样一段文字,觉得说得很对,但也没能完全明白。如下:
反斜线 ‘\ ’ 转义和引用
在初期运用正则表达式的时候可能竟然因为对‘ \ ‘不理解而产生不必要的错误,这个字符在 Java 中是非常特殊的,它的作用就是转义和引用。
引用 :反斜线 用于引用其他将被解释为非转义构造的转义字符 ,这话的确很拗口,仔细分析其实是不难理解的,比如想要声明一个内容为一对英文符号的双引号的字符串,也就是 ”” ,那么如何声明呢?如果直接这样声明
String str = “”””;
编译器是肯定不通过的,因为在 Java 中双引号是转义字符,也就是说单一个双引号表示的并非其原意,那么我们如何声明呢?其实很简单只要改成这样就解决了。
String str = “\”\””;
我们要将一个双引号原本的意思表示出来使用反斜线即可,也就是说 ” 在 JVM 中被认作为字符串的声明符号类似于操作运算符,而前面加上一个反斜线 \ 就是告诉 JVM 我要双引号的文本意思(也就是上面那句话中的 解释为非转义构造 ),即一个符号。
转义 :反斜线同时也可以用于引用转义构造,举一个最简单的例子, n 原本没有任何其他意思,也就是非转义字符,而前面加上 \ ,变为 \n 就代表一个换行符,这时反斜线就把 n “转义“了,注意这里的 \n 是事先声明过的,如果来一个 \v 在编译时就会报错。在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。可以在非字母字符前使用反斜线,不管该字符是否是非转义构造的一部分。当然如果要解释非转义的其本身,可以这样 \\
关于Java中反斜线能不能说得更明白一点,或者推荐讲得明白的帖子看看?反斜线大师们请回答一下我,谢谢。 展开
现在网上看到这样一段文字,觉得说得很对,但也没能完全明白。如下:
反斜线 ‘\ ’ 转义和引用
在初期运用正则表达式的时候可能竟然因为对‘ \ ‘不理解而产生不必要的错误,这个字符在 Java 中是非常特殊的,它的作用就是转义和引用。
引用 :反斜线 用于引用其他将被解释为非转义构造的转义字符 ,这话的确很拗口,仔细分析其实是不难理解的,比如想要声明一个内容为一对英文符号的双引号的字符串,也就是 ”” ,那么如何声明呢?如果直接这样声明
String str = “”””;
编译器是肯定不通过的,因为在 Java 中双引号是转义字符,也就是说单一个双引号表示的并非其原意,那么我们如何声明呢?其实很简单只要改成这样就解决了。
String str = “\”\””;
我们要将一个双引号原本的意思表示出来使用反斜线即可,也就是说 ” 在 JVM 中被认作为字符串的声明符号类似于操作运算符,而前面加上一个反斜线 \ 就是告诉 JVM 我要双引号的文本意思(也就是上面那句话中的 解释为非转义构造 ),即一个符号。
转义 :反斜线同时也可以用于引用转义构造,举一个最简单的例子, n 原本没有任何其他意思,也就是非转义字符,而前面加上 \ ,变为 \n 就代表一个换行符,这时反斜线就把 n “转义“了,注意这里的 \n 是事先声明过的,如果来一个 \v 在编译时就会报错。在不表示转义构造的任何字母字符前使用反斜线都是错误的;它们是为将来扩展正则表达式语言保留的。可以在非字母字符前使用反斜线,不管该字符是否是非转义构造的一部分。当然如果要解释非转义的其本身,可以这样 \\
关于Java中反斜线能不能说得更明白一点,或者推荐讲得明白的帖子看看?反斜线大师们请回答一下我,谢谢。 展开
3个回答
展开全部
反斜线 ‘\ ’JAVA中代表着转义字符的意思,理论你已经看了,我举个简单的例子吧
比如,JAVA类中,你需要把文件最后存储的路径保存在数据库中,通常我们在电脑操作中看到的路径如下 src\com\dao
但是这个路径一般是以字符串形式存在数据库中,但是JAVA语言它不知道你的\号到底是路径中的下一层的意思,还是字符串"\"的意思。所以正确的写法应该是src\\com\\dao之类的。
总结一句话就是,转义字符的意义就是避免出现二义性,二义性是所有编程语言都不允许的。
希望你能明白,多写几个例子,慢慢就领悟了,祝好运!
比如,JAVA类中,你需要把文件最后存储的路径保存在数据库中,通常我们在电脑操作中看到的路径如下 src\com\dao
但是这个路径一般是以字符串形式存在数据库中,但是JAVA语言它不知道你的\号到底是路径中的下一层的意思,还是字符串"\"的意思。所以正确的写法应该是src\\com\\dao之类的。
总结一句话就是,转义字符的意义就是避免出现二义性,二义性是所有编程语言都不允许的。
希望你能明白,多写几个例子,慢慢就领悟了,祝好运!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你说的很有道理,关键是在使用中了解,不要一味的要求理论。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得你引用的这两段已经说的比较清楚了。如果有什么不明白可以说明下是哪里不明白。这样就好针对你不明白的地方给你讲解下。
更多追问追答
追问
您好:
那我问你个例子吧。正则表达式中为什么匹配数字的话用的是
String regex = “\\d”,
匹配一个普通的反斜线,
为什么应该是
String regex = "\\\\";
可以根据上文的理论帮我解释一下这俩例子吗?
追答
String regex = “\\d”,是因为java无法识别\d,所以需要你再加一个\代表转义符。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询