【发布时间】:2014-11-12 21:06:24
【问题描述】:
我必须用另一个子字符串替换字符串中的一组子字符串,例如
-
"^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())抛出什么异常?你能给出完整的异常堆栈跟踪吗? -
对不起。我忘了。空指针异常