java Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )

java转义符我一直认为是很难理解的东西,我常常把\符号和/符号弄混,不知道那一个是转义符 

在java语言中你要知道的\是一个讨厌一个人的物种,\总喜欢秀恩爱,一般都是成对出现的如\\,但是也会有少量的奇葩\不喜欢另一半\,他们喜欢其他的字符,这些奇葩的字符就和人类中的同性恋一样不和大多数人喜欢的一样,他们喜欢的是特别的,如\和b在一起表示字符的边界,\r在一起表示回车,\n表示换行 \t表示制表符,\f换页符号这些单独出现的\符号,都是特定的符号有特殊的含义,这些字符需要记住。

喜欢秀恩爱的\表示什么呢?\\在一起只是单纯的表示一个字符就是转义符,表示对某个字符的转义或者表示他自己。

在什么场景下需要转义呢最常见的就是正则表达式,如 a|b|c.spilit("|"),你以为结果是a,b,c吗,错了结果没有按照|进行分割,为什么不会呢?

因为|在split中表示或 a|b&c#d.split("&|#")这个是按照&或者#分割结果是a|b,c,d。如果我不要|表示或的意思只要他做回安静的自己怎么做呢?这个时候需要加上秀恩爱的\\,加上转义符的\\|表示单纯的符号|。还有\w正则表达式表示字符,\d表示数字,如果需要正则表达式匹配\w不能单独出现,需要\\表示转义,所以\\w其实表示的是\w.

小程序:

"s\\vf".split("\\");

这里的结果回事s,vf么,答案是否定的java禁止\\单独出现作为正则表达式,原因是\\在正则表达式中没有意义只是表达转移,只有\\\\4个\才表示他本身,前两个\\表示转移,后两个\\表示本身。

所以"s\\vf“.split("\\\\")结果才是 s,vf

最后\\字符还有一个特殊含义表示根目录和//的含义是一样的,和/的含义不一样,上代码

public class Log4jTest {

public static void main(String[] args) {

//NPE

Log4jTest.class.getClassLoader().getResource("/").getPath();

//   /E:/cache/notice/target/classes/

Log4jTest.class.getClassLoader().getResource("//").getPath();

// /E:/cache/notice/target/classes/%5c

Log4jTest.class.getClassLoader().getResource("\\").getPath();

java Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )

时间: 2024-08-28 11:36:29

java Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )的相关文章

Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )问题解决

如需转载请标明出处:http://blog.csdn.net/itas109 今天写正则表达式的时候出现下图错误 解决: java转义的问题,把\替换成\\即可 如需转载请标明出处:http://blog.csdn.net/itas109 Invalid escape sequence (valid ones are \b \t \n \f \r \" \' \\ )问题解决

Invalid escape sequence(valid ones are \b \t \n \f \r \" \' \\)

Invalid escape sequence(valid ones are \b \t \n \f \r \" \' \\) 在运行eclipse的相关程序代码时遇到了报错信息,查看控制台Invalid escape sequence(valid ones are \b \t \n \f \r \" \' \\),在网上百度了一下之后原因:             在Java中有反义字符的说法,"\" 被解释为Unicode 转义或其他字符转义.因此必须在字符串字

iOS解析JSON字符串报错Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 586."

将服务器返回的JSON string转化成字典时报错: Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 586." 仔细查找后在原来解析的基础上将"\"字符替换成""或"\\"后,解析成功.具体的解析代码如下: - (NSDictionary *)parseJsonStringToNSDictionary:(

Uncaught SyntaxError: Invalid Unicode escape sequence异常处理

今天碰到一个问题,页面报错:Uncaught SyntaxError: Invalid Unicode escape sequence ,{index:'operate',name:'operate',label:'<s:text name="com.vrv.cems.ptp.installSoft.operate"></s:text>',width:getPerWidth(0.1), formatter:function(value,rec,index){ r

HTML字符实体(Character Entities),转义字符串(Escape Sequence) 转

为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢? 这就要说到HTML转义字符串(Escape Sequence)了. 转义字符串(Escape Sequence)也称字符实体(Character Entity).在HTML中,定义转义字符串的原因有两个: 第一个原因是像“<”和“>”这类符号已经用来表示HTM

HTML字符实体(Character Entities),转义字符串(Escape Sequence)

HTML字符实体(Character Entities),转义字符串(Escape Sequence) 为什么要用转义字符串? HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用.这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢? 这就要说到HTML转义字符串(Escape Sequence)了. 转义字符串(Escape Sequence)也称字符实体(Character Entity).在HT

db2 创建实例 The host name &quot;fordatabase&quot; is invalid. Specify a valid host name.

有这样一个现象,在DB2安装后,使用db2icrt 来创建实例时,提示主机名无效,提示如下: [plain] view plain copy [[email protected] instance]# ./db2icrt -u db2inst1 db2inst1 The host name "centos-0.msdomain" is invalid. Specify a valid host name. DBI1922N  The host name is not valid. Ex

invalid byte sequence for encoding &quot;UTF8&quot;: 0xe99d2c

Query failed: ERROR:  invalid byte sequence for encoding "UTF8": 0xe99d2c 原因是客户端字符集和插入内容的字符集不匹配.PostgreSQL默认不做字符集转换,如果数据库是UTF8的字符集,一般终端的中文字符集会设置为GBK(可以看LANG环境变量确认),所以这个编码不经转换的存入数据库中,而数据库是UTF8的,PostgreSQL发现不是UTF8编码,就报上面的错. 要想打开自动字符集转换功能,必须告诉 pg 客

[jekyll] 乱码问题invalid byte sequence in GB2312

这里是windows下 使用1.4.3版本时候出现的问题. 问题1 I:\git\orangle.github.io>jekyll serve --watch Configuration file: I:/git/orangle.github.io/_config.yml Source: I:/git/orangle.github.io Destination: I:/git/orangle.github.io/_site Generating... Error reading file I:/