当前位置: 首页 > 面试题库 >

字符串的replaceAll()方法和转义字符

狄卓君
2023-03-14
问题内容

线

System.out.println("\\");

打印一个反斜杠(\)。和

System.out.println("\\\\");

打印双反斜杠(\\)。明白了!

但是为什么在以下代码中:

class ReplaceTest
{
    public static void main(String[] args)
    {
        String s = "hello.world";
        s = s.replaceAll("\\.", "\\\\");
        System.out.println(s);
    }
}

是输出:

hello\world

代替

hello\\world

毕竟,该replaceAll()方法是将点(\\.)替换为(\\\\)。

有人可以解释一下吗?


问题答案:

使用正则表达式替换字符时,您可以使用反向引用,例如\1使用匹配项中的分组替换。

但是,这意味着反斜杠是一个特殊字符,因此,如果您实际上想使用反斜杠,则必须对其进行转义。

这意味着在Java字符串中使用它时实际上需要对其进行两次转义。(首先用于字符串解析器,然后用于正则表达式解析器。)



 类似资料:
  • 本文向大家介绍Java字符串replace(),replaceFirst()和replaceAll()方法,包括了Java字符串replace(),replaceFirst()和replaceAll()方法的使用技巧和注意事项,需要的朋友参考一下 该方法 String类的replace()方法接受两个String值- 一个表示要替换的String(子字符串)部分。 另一个代表需要替换指定子字符串的

  • 问题内容: 是否存在Android Ormlite转义字符串的本机方法? 例如,如果我想提供一个字符串:ormlite的转义函数,则需要将其作为ormlite的转义函数提供。 我尝试使用UpdateBuilder的escapeValue方法,但它仅进行以下更改:“ ormlite的转义函数”。它将单引号添加到语句的开头和结尾。是否存在对转义字符串进行sql注入安全的本机支持? 如果没有,该怎么做?

  • 问题内容: 为了回答这个问题,我设法通过转义反斜杠来使字符串成为转义字符。 当我尝试将其概括为转义所有转义的字符时,它似乎无能为力: 但是对于特定的转义字符使用相同的方法,它确实起作用: 有一般的方法可以做到这一点吗?应包括,,,等。 问题答案: 使用r’text’将字符串定义为raw,如下面的代码所示:

  • 本文向大家介绍js字符串转数字的方法?相关面试题,主要包含被问及js字符串转数字的方法?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 通过函数parseInt(),可解析一个字符串,并返回一个整数,语法为parseInt(string ,radix) string:被解析的字符串 radix:表示要解析的数字的基数,默认是十进制,如果radix<2或>36,则返回NaN

  • 问题内容: 我希望将文本“REPLACEME”替换为我的StringBuffer符号。当我打印符号时,它是一个有效的字符串。当我打印查询时,它仍然具有文本REPLACEME而不是符号。为什么? 问题答案: 更改 至: Java中的字符串被设计为不可变的。 这就是为什么不能替换当前字符串 中 的字符,因此它必须返回替换了字符的 新 字符串。 此外,如果你想简单地替换文字,不需要正则表达式的语法支持使

  • 除了后面使用正则表达式之外,java.lang.String的和方法有什么区别?对于简单的替换,如将替换为,有什么区别吗?