gpt4 book ai didi

java - 如何使用 Java 在字符串中多次转义特定字符

转载 作者:行者123 更新时间:2023-12-01 19:27:51 26 4
gpt4 key购买 nike

我有一个特殊字符数组,如下所示

String[] special = {
"\", ":", "/"
};

我想要做的是循环遍历给定的字符串,如果遇到特殊数组中的任何字符,我想添加转义符\\ 位于该字符前面。请参阅下面的以下输入

Input: Hello : Good : Day
Output Hello \\: Good : Day
Expected: Hello\\:Good\\:Day

如您所见,在看到第一个特殊字符后,它不会检查任何其他字符。任何帮助表示赞赏。代码如下

 String[] special = { "\", ":", "/" };

public String specialCheck(String replaceMe) {

String cleanMe = replaceMe.replace(" ", "");
StringBuilder stringBuilder = new StringBuilder(cleanMe);

for (String badChars : special) {
if (cleanMe.contains(badChars)) {
stringBuilder.insert(cleanMe.indexOf(badChars) , "\\\\");
}
}

return stringBuilder.toString();

}

最佳答案

按如下方式进行:

public class Main {
public static void main(String[] args) {
String str="Hello : Good : Day";
System.out.println(str.replaceAll(":", "\\\\\\\\:"));
}
}

输出:

Hello \\: Good \\: Day

注意:

  1. 使用String:replaceAll替换所有出现的内容。
  2. 使用\\转义\

[更新]

根据OP的评论发布以下更新:

public class Main {
public static void main(String[] args) {
// Test
System.out.println(getEscapedString("Hello : Good : Day"));
System.out.println(getEscapedString("Hello / Good / Day"));
System.out.println(getEscapedString("Hello \\ Good \\ Day"));
}

static String getEscapedString(String str) {
return str.replaceAll("[:/\\\\]+", "\\\\\\\\$0");
}
}

输出:

Hello \\: Good \\: Day
Hello \\/ Good \\/ Day
Hello \\\ Good \\\ Day

关于java - 如何使用 Java 在字符串中多次转义特定字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60922262/

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