Я заменить набор подстрок в строку другой подстроки, напримерЗамените набор подстрок в строке более эффективным способом?
"^t"
с"\t"
"^="
с"\u2014"
"^+"
с"\u2013"
"^s"
с"\u00A0"
"^?"
с"."
"^#"
с"\\d"
"^$"
с"[a-zA-Z]"
Итак, я попытался с:
String oppip = "pippo^t^# p^+alt^shefhjkhfjkdgfkagfafdjgbcnbch^";
Map<String,String> tokens = new HashMap<String,String>();
tokens.put("^t", "\t");
tokens.put("^=", "\u2014");
tokens.put("^+", "\u2013");
tokens.put("^s", "\u00A0");
tokens.put("^?", ".");
tokens.put("^#", "\\d");
tokens.put("^$", "[a-zA-Z]");
String regexp = "^t|^=|^+|^s|^?|^#|^$";
StringBuffer sb = new StringBuffer();
Pattern p = Pattern.compile(regexp);
Matcher m = p.matcher(oppip);
while (m.find())
m.appendReplacement(sb, tokens.get(m.group()));
m.appendTail(sb);
System.out.println(sb.toString());
Но это не работает. tokens.get(m.group())
выдает исключение.
Любая идея, почему?
Что делает исключение 'tokens.get (m.group())' бросить? Можете ли вы дать полную трассировку стека исключений? – Unihedron
Извините. Я забыл. Исключение нулевого указателя – Matt3o