gpt4 book ai didi

java - 无法在 Java 字符串中保存 HTML 实体 - 非法字符

转载 作者:行者123 更新时间:2023-12-04 08:57:25 25 4
gpt4 key购买 nike

我无法编译这个:String[][] UMLAUT_REPLACEMENTS = {{"\u0022", """},{"\u0021", "!"}};我试图通过使用\\来转义特殊字符,但没有效果。
这是错误代码:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project opk-application-util: Compilation failure: Compilation failure: 
[ERROR] /C:/eplatform/git-repos/opk-backend/opk-application-util/src/main/java/util/SonderZeichenFilter.java:[50,41] '}' expected
[ERROR] /C:/eplatform/git-repos/opk-backend/opk-application-util/src/main/java/ch/opk/util/SonderZeichenFilter.java:[50,45] ';' expected
[ERROR] /C:/eplatform/git-repos/opk-backend/opk-application-util/src/main/java/ch/opk/util/SonderZeichenFilter.java:[50,46] illegal character: '#'
[ERROR] /C:/eplatform/git-repos/opk-backend/opk-application-util/src/main/java/ch/opk/util/SonderZeichenFilter.java:[50,47] ';' expected
[ERROR] /C:/eplatform/git-repos/opk-backend/opk-application-util/src/main/java/opk/util/SonderZeichenFilter.java:[50,50] unclosed string literal

最佳答案

在 Java Unicode 转义序列 ( \uXXXX ) 作为 pre-processing 的一部分处理和之前的字符串文字 escape sequences被处理。因此当编译器处理 "\u0022"它实际上是在处理字符串文字 """这是一个空字符串文字(两个双引号),后跟另一个字符串文字的开引号,因此导致错误“未关闭的字符串文字”,因为代码中的双引号数量不均匀。
这是造成 Javadoc 格式错误的常见原因(当作者想按字面意思写 \uXXXX 但结果 HTML 反而包含相应的 Unicode 字符时)并且大多数 IDE 也对此感到困惑(例如 \u0063lass MyClass {} 是有效的 Java 源代码; \u0063 = c )。
在您的情况下,您可以使用特殊的转义序列 \"写一个文字 " .这也将提高可读性,因为并不是每个人都熟悉 " 的 Unicode 代码点。 .同样\u0021可以写成 !因为该字符在 Java 字符串中没有特殊含义。因此,您的代码可以这样编写:

String[][] UMLAUT_REPLACEMENTS = {{"\"", """},{"!", "!"}};

如果你想要文字 \uXXXX在 Java 字符串中,您必须在反斜杠前面加上另一个 \ 来转义反斜杠。 : "\\uXXXX"

关于java - 无法在 Java 字符串中保存 HTML 实体 - 非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63738972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com