我有一个带有特殊字符的字符串,我想用相应的引用替换它。
例如
InputString -> Hi <Nishanth> How &are you !
OutputString -> Hi <Nishanth> How &are you &excl
我尝试使用替换的概念。但我无法达到预期的效果。 我想要一个能在Java中为我做的功能。
答案 0 :(得分:0)
replaceAll
应该能够完成这项工作。
首先,让我们创建一个快速元组类来表示一对字符串:要搜索的字符串以及用以下字符串替换它的字符串:
private static class StringTuple{
private String k;
private String v;
public StringTuple(String one, String two){
k = one;
v = two;
}
}
有了这个,我们可以构建一个要搜索的特殊字符列表及其相应的替换。请注意,此列表将按照我们创建的顺序使用,因此我们必须首先替换可能会在其他替换中显示的特殊字符(例如&
或;
)。< / p>
ArrayList<StringTuple> specialChars = new ArrayList<>();
specialChars.add(new StringTuple("&", "&"));
specialChars.add(new StringTuple("<", "<"));
specialChars.add(new StringTuple(">", ">"));
最后,我们可以编写一个循环遍历特殊字符列表的函数,并用替换字符串替换所有出现的内容:
public static String replaceSpecialChars(String s, ArrayList<StringTuple> specialChars){
for(StringTuple e: specialChars){
s = s.replaceAll(e.k, e.v);
}
return s;
}
这是一个基于上述代码的可运行主体:
public static void main(String[] args) {
ArrayList<StringTuple> specialChars = new ArrayList<>();
specialChars.add(new StringTuple("&", "&"));
specialChars.add(new StringTuple("<", "<"));
specialChars.add(new StringTuple(">", ">"));
System.out.println(replaceSpecialChars("Hi <Nishanth> How are &you !", specialChars));
}
输出:Hi <Nishanth> How are &you !