gpt4 book ai didi

java - 为什么用换行符分割字符串时单个黑斜杠也可以工作

转载 作者:行者123 更新时间:2023-12-03 01:35:07 27 4
gpt4 key购买 nike

我确实理解这个概念,在处理正则表达式时我们需要 2 个反斜杠 - https://stackoverflow.com/a/1701876/72437

以下代码能够毫无问题地拆分 helloworld

String message = "hello\nworld";

String[] result = message.split("\\n");

// hello
// world
for (String r : result) {
System.out.println(r);
}

但是,如果我使用 1 个反斜杠,它也可以工作。 (也可以分割 helloworld)

String message = "hello\nworld";

String[] result = message.split("\n");

// hello
// world
for (String r : result) {
System.out.println(r);
}

我预计仅使用 1 个反斜杠作为正则表达式在 Java 中将不起作用。但是,它有效。我可以知道为什么会这样吗?

最佳答案

您的单个​​反斜杠 \n 在编译器级别被解释为字符串 LINEFEED 字符,并且 LINEFEED 字符被发送到 String.split() 方法,java-regex 引擎直接获取 LINEFEED 字符

对于双反斜杠 \\n ,您有正确的理解。源代码中的 \\n 在进入正则表达式引擎时被编译为 \n\n 是 java-regex 引擎中 LINEFEED 内部 的转义码

关于java - 为什么用换行符分割字符串时单个黑斜杠也可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49435589/

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