gpt4 book ai didi

java - Ctrl-M 的正则表达式问题

转载 作者:行者123 更新时间:2023-11-29 04:01:34 26 4
gpt4 key购买 nike

我想计算以下内容:

boolean b = "\u000D".matches("\\cM");

但是编译器给我:

unclosed string literal
illegal character: \92
illegal character: \92
unclosed string literal
not a statement

为什么?该文字不是有效的 unicode Ctrl-m unicode 代码???

最佳答案

unclosed string literal 的问题是因为the \uXXXX sequences are resolved before lexing .所以

boolean b = "\u000D".matches("\\cM");

成为

boolean b = "
".matches("\\cM");

这是无效的 Java 代码。 (是的,这也意味着您可以编写 String foo =\u0022\u0021\u0022; 并正确编译。)

如果你改写

boolean b = "\r".matches("\\cM"); // \r == \u000D

然后代码运行并返回 true

关于java - Ctrl-M 的正则表达式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193622/

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