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("&", "&"));
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 !
вы забыли описать проблему вы имея и задавать вопрос. – Pshemo
См. Рекомендации по [как задать хороший вопрос] (http://stackoverflow.com/help/how-to-ask) – screenmutt
дубликат http://stackoverflow.com/questions/439298/best-way-to -encode-text-data-for-xml-in-java –