首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java中的字符串转义符 "\\"

2012-12-19 
Java中的字符串转义符 \\下面的单元测试能够通过,这可能不符合直觉。@Testpublic void passed() {String

Java中的字符串转义符 "\\"
下面的单元测试能够通过,这可能不符合直觉。

@Testpublic void passed() {String a = "\";assertFalse(a.length() == 2);assertTrue(a.length() == 1);String b = "\\\";assertTrue(b.length() == 2);}


原因在于""在这里被JVM解释为转义符,所以如果当你需要一个"",在Java里面同时需要为JVM提供一个""用于转义,这样你就得到了一个字符"\"。

进一步的可以做一个小实验,在用户UI中输入字符"\abc",调试模式用该字符初始化的Java变量其实是"\\abc",当你把这个字符输出到文件或者保存到数据库中时,我们看到的是"\abc".

给定一个表达式:
foobar~='^.*a[b-f]g.*$',
我们不想让其中正则表达式生效(本意是想让诸如mvel这样的语言解释器,将[b-f]按照字面意义上去读入),这样的话,前面表达式如果存在数据库中,似乎是这样:
foobar ~='^.*a\\[b-f\\]g.*$'

进一步的,在Java代码中将表达式赋值给一个变量,看起来应该是这个样子
 String expression = "foobar~='^.*a\\\\[b-f\\\\]g.*$'";

热点排行