0

我有一个带有特殊字符的字符串,我想用相应的引用替换它。

例如

InputString -> Hi <Nishanth> How &are you !
OutputString -> Hi &ltNishanth&gt How &ampare you &excl

我尝试使用替换的概念。但我无法达到预期的结果.. 我想要一个可以在 Java 中为我完成的函数。

4

1 回答 1

0

replaceAll应该能够很好地完成这项工作。

首先,让我们创建一个快速元组类来表示一对字符串:要搜索的字符串和要替换的字符串:

private static class StringTuple{
    private String k;
    private String v;

    public StringTuple(String one, String two){
        k = one;
        v = two;
    }
}

有了这个,我们可以建立一个特殊字符列表来搜索和它们相应的替换。请注意,此列表将按照我们创建它的顺序使用,因此我们首先替换可能出现在其他替换中的特殊字符(例如&;)很重要。

ArrayList<StringTuple> specialChars = new ArrayList<>();
specialChars.add(new StringTuple("&", "&amp;"));
specialChars.add(new StringTuple("<", "&lt;"));
specialChars.add(new StringTuple(">", "&gt;"));

最后,我们可以编写一个循环遍历特殊字符列表并用替换字符串替换所有出现的函数:

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("&", "&amp;"));
    specialChars.add(new StringTuple("<", "&lt;"));
    specialChars.add(new StringTuple(">", "&gt;"));
    System.out.println(replaceSpecialChars("Hi <Nishanth> How are &you !", specialChars));
}

输出:Hi &lt;Nishanth&gt; How are &amp;you !

于 2015-05-13T17:03:48.500 回答