gpt4 book ai didi

java - 如何在java String中用 "\_"精确替换空格?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:07:46 24 4
gpt4 key购买 nike

我有一个带空格的字符串,我希望用 "\_" 替换该空格.例如这里是我的代码

String example = "Bill Gates";
example = example.replaceAll(" ","\\_");

示例的结果是:“Bill_Gates”而不是“Bill\_Gates”。当我尝试这样做时

String example = "Bill Gates";
example = example.replaceAll(" ","\\\\_");

例子的结果是:“Bill\\_Gates”不是“Bill\_Gates”

最佳答案

您需要使用 replaceAll("","\\\\_") 而不是 replaceAll("","\\_")。因为 '\\' 是文字。它将被编译为 '\' 单斜杠。当您将其传递给 replaceall 方法时。它将第一个斜杠作为“_”的转义字符。如果你查看 replaceall 方法

    while (cursor < replacement.length()) {
char nextChar = replacement.charAt(cursor);
if (nextChar == '\\') {
cursor++;
if (cursor == replacement.length())
throw new IllegalArgumentException(
"character to be escaped is missing");
nextChar = replacement.charAt(cursor);
result.append(nextChar);
cursor++;

当它找到一个斜杠时,它将替换该斜杠的下一个字符。所以你必须输入“\\\\_”来替换方法。那么它将被处理为“\\_”。方法将查找第一个斜杠并替换第二个斜杠。然后它将替换下划线。

关于java - 如何在java String中用 "\_"精确替换空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33536710/

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