0

我有一个字符串。

String invalid = "backslash escaping as <>:;%+\/"."

我收到一条错误消息,告诉我添加\以转义序列。当我尝试用 Java 编写此代码时,我知道反斜杠需要转义为\\. 所以我把它写成:

String invalid = "backslash escaping as <>:;%+\\/\"."

现在这显示为backslash escaping as <>:;%+\\/".

反斜杠没有转义。如何只得到一个反斜杠?

4

2 回答 2

1

我没有发现你的修改有问题。这按预期运行:

    String invalid = "backslash escaping as <>:;%+\\/\".";
    System.out.println(invalid);

    output:
    backslash escaping as <>:;%+\/".

在您的第一个示例中,您有一个小问题:

\/".

我认为应该是这样的:

/\".

因为在第一种方式中,您要先关闭字符串。该部分."不在字符串中。

编辑: 尝试将输出写入文件或 JTextField 或其他东西,看看会发生什么,你的字符串是正确的,如果你将输出与我的输出进行比较,它是相同的。这可能是您的调试器的问题(很奇怪,但可能)。

于 2013-01-23T15:48:27.527 回答
0

您帖子中的第二个字符串已正确显示。您观察输出的方式一定有问题。

尝试最简单的方法:

  • 创建一个名为的文件Escape.java并将此代码写入其内容中:

    public class Escape {
    
        public static void main(String... args) {
            String s = "backslash escaping as <>:;%+\\/\".";
            System.out.println(s);
        }
    }
    
  • 打开您的操作系统提供的任何命令行,然后转到包含所述源文件的文件夹。

  • 编译源文件:

    javac Escape.java
    
  • 并运行类文件:

    java -cp . Escape
    
  • 它应该给出这个输出:

    backslash escaping as <>:;%+\/".
    
  • ...这正是你想要的,我相信。

于 2013-01-23T21:28:02.080 回答