terça-feira, 23 de julho de 2013

Substituir Caracter Especial por Caractecter Equivalente!

private static final Map<String, String> charsAndEquivalents = new HashMap<String, String>();
static {
 charsAndEquivalents.put("áàãâä", "a");
 charsAndEquivalents.put("éèêë" , "e");
 charsAndEquivalents.put("íìîï" , "i");
 charsAndEquivalents.put("óòõôö", "o");
 charsAndEquivalents.put("úùûü" , "u");
 charsAndEquivalents.put("ñ"    , "n");
 charsAndEquivalents.put("ç"    , "c");
 charsAndEquivalents.put("ÁÀÃÂÄ", "A");
 charsAndEquivalents.put("ÉÈÊË" , "E");
 charsAndEquivalents.put("ÍÌÎÏ" , "I");
 charsAndEquivalents.put("ÓÒÕÔÖ", "O");
 charsAndEquivalents.put("ÚÙÛÜ" , "U");
 charsAndEquivalents.put("Ç"    , "C");
 charsAndEquivalents.put("Ñ"    , "N");
}
/**
 * Substitui caracteres especiais por caracter equivalente.
 * <br />
 * Ex: á por a, È por E, ç por c e Ñ por N.
 * 
 * @param stringToReplace string que terá caracteres substituídos.
 * @return stringToReplace com caracteres substituídos.
 */
public static String replaceSpecialCharsToEquivalent(String stringToReplace) {
 
 if (stringToReplace == null) {
  throw new IllegalArgumentException("stringToReplace cannot be null");
 }
 
 Iterator<String> iterator = charsAndEquivalents.keySet().iterator();
 for (;iterator.hasNext();) {
  String key = iterator.next();
  stringToReplace = stringToReplace.replaceAll(String.format("[%s]",key), charsAndEquivalents.get(key));
 }
 return stringToReplace;
}

Nenhum comentário:

Postar um comentário