尝试使用String.replaceAll把斜杠(/)替换成反斜杠()时,一直抛StringIndexOutOfBoundsException异常。
后来意识到写法错误,原代码如下:
"xobo/org".replaceAll("/", "\")
正确的写法是:
"xobo/org".replaceAll("/", Matcher.quoteReplacement("\"))
等价的写法是:
"xobo/org".replaceAll("/", "\\")
Java字符串"\\"组成了一个正则表达式"\",而正则表达式"\"代表着纯文本""。
所以四个反斜杠才能真正表达一个反斜杆的含义。
java.util.regex.Matcher.quoteReplacement(String) 这个方法就是专门消除""及"$"特殊含义的方法。
在使用String.replace的时候就没这个烦恼,两个就好了"\",因为在replace方法内对replacement参数调用了Matcher.quoteReplacement方法。
最新评论
昨天发现的,然后在application.yml中配置“hibernate.dialect.storage_engine=innodb”。但是自动生成的表还是不会设置为innoDB,看了底层源码。这个配置也是没有加载到的 原来是要在hibernate.properties中加这个配置。感谢
将virtualbox虚拟网卡驱动卸载了,然后就会好了,但是这个时候virtualbox虚拟网络就无法使用了,重新安装一下virtualbox就好了
我也发现了这个注释:注释“Use "hibernate.dialect.storage_engine=innodb" environment variable or JVM system property instead.” ----- 坑啊。。。。。。。
卸载蓝牙驱动·在设备里面找,一般在网卡那里 卸载重启就行了
高