有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

特别是正则表达式的Java原始字符串。多行字符串

有没有办法在Java中使用原始字符串(没有转义序列)

(我正在编写大量的正则表达式代码,原始字符串将使我的代码更具可读性)

我理解语言并没有直接提供这一点,但有没有任何方式可以“模拟”它们


共 (6) 个答案

  1. # 1 楼答案

    没有(非常遗憾)

  2. # 2 楼答案

    将原始文本文件放在类路径中,并使用getResourceAsStream(..)读入

  3. # 3 楼答案

    不,没有

    通常,您会将原始字符串和正则表达式放在属性文件中,但它们也有一些转义序列要求

  4. # 4 楼答案

    如果您正在使用eclipse,这是一个解决方案。 在将文本粘贴到字符串文字中时,可以自动使长文本块正确地多行,并自动转义特殊字符

    “-粘贴在这里-”

    如果在窗口中启用该选项→偏好→JAVA→编辑→打字→“粘贴到字符串文字时转义文本”

  5. # 5 楼答案

    我使用Pattern.quote。它解决了这个问题。因此:

    Pattern pattern = Pattern.compile(Pattern.quote("\r\n?|\n"));
    

    quote方法返回一个字符串,该字符串将与提供的字符串参数匹配,返回的字符串是我们案例中正确引用的字符串

  6. # 6 楼答案

    文本块来到Java

    Java 13 delivers long-awaited multiline strings

    一些历史: Raw String Literals撤回。这原本是JDK 12中的一个预览语言功能,但后来被撤回,并没有出现在JDK 12中。 It was superseded by Text Blocks (JEP 355) in JDK 13.

    可以使用文本块轻松定义多行字符串文字。您不需要添加常规字符串文本附带的视觉混乱:串联运算符和转义序列。还可以控制字符串值的格式。例如,让我们看一下以下HTML片段:

    String html = """
    <HTML>
      <BODY>
        <H1>"Java 13 is here!"</H1>
      </BODY>
    </HTML>""";
    

    请注意,三个引号,用于分隔块的开头和结尾