【问题标题】:Invalid Escape Sequence in JavaJava中的无效转义序列
【发布时间】:2011-12-23 04:32:56
【问题描述】:

当我创建这个String:

private String chars = " `~1!2@3#4$5%6^7&8*9(0)-_=+qQwWeErRtTyYuUiIoOpP[{]}\|aAsSdDfFgGhHjJkKlL;:'"zZxXcCvVbBnNmM,<.>/?";

Eclipse 告诉我:

Invalid escape sequence (valid ones are  \b  \t  \n  \f  \r  \"  \'  \\ )

我该如何解决这个问题?

【问题讨论】:

    标签: java string


    【解决方案1】:

    \ 是一个转义字符。您基本上是在逃避 | ,根本不需要逃避。如果你想在 String 中表示一个\,那么你需要让它自己转义。

    private String chars = " `~1!2@3#4$5%6^7&8*9(0)-_=+qQwWeErRtTyYuUiIoOpP[{]}\\|aAsSdDfFgGhHjJkKlL;:'\"zZxXcCvVbBnNmM,<.>/?";
    

    请注意"确实需要转义,否则字符串值结束太早,代码仍然无法编译,因为后面的所有奇数字符。

    【讨论】:

    • 我粘贴的时候其实是这样的,但是由于某种原因,StackOverflow 把它取出来了。再来一次:" `~1!2@3#4$5%6^7&8*9(0)-_=+qQwWeErRtTyYuUiIoOpP[{]}\|aAsSdDfFgGhHjJkKlL;:'\"zZxXcCvVbBnNmM,<.>/ ?";
    • BalusC 的回答是对的,@Cg2916。您需要转义反斜杠和引号。您的评论和您的 pastebin 都没有转义反斜杠。
    • 作为回答,你有一个 \| 这不是一个有效的转义序列。您需要让 \ 自行转义以按原样表示它,因此:\\| 就像我的回答一样。 \" 只是附加提示。
    猜你喜欢
    • 1970-01-01
    • 2015-09-12
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-26
    • 2021-11-29
    相关资源
    最近更新 更多