[Mulgara-svn] r1547 - trunk/src/jar/util/java/org/mulgara/util
pag at mulgara.org
pag at mulgara.org
Wed Feb 25 18:51:55 UTC 2009
Author: pag
Date: 2009-02-25 10:51:53 -0800 (Wed, 25 Feb 2009)
New Revision: 1547
Modified:
trunk/src/jar/util/java/org/mulgara/util/StringUtil.java
Log:
Added a method to unescape Java strings
Modified: trunk/src/jar/util/java/org/mulgara/util/StringUtil.java
===================================================================
--- trunk/src/jar/util/java/org/mulgara/util/StringUtil.java 2009-02-25 18:51:04 UTC (rev 1546)
+++ trunk/src/jar/util/java/org/mulgara/util/StringUtil.java 2009-02-25 18:51:53 UTC (rev 1547)
@@ -687,7 +687,45 @@
}
+ /** Map of escape characters to their character codes */
+ private static Map<Character,String> map = new HashMap<Character,String>();
+ static {
+ map.put('t', "\t");
+ map.put('t', "\t");
+ map.put('b', "\b");
+ map.put('n', "\n");
+ map.put('r', "\r");
+ map.put('f', "\f");
+ map.put('\\', "\\");
+ map.put('"', "\"");
+ map.put('\'', "'");
+ }
+
+
/**
+ * Search for escape characters in a string, and replace them with the request values.
+ * @param s The string to search.
+ * @return A new string with all escape characters replaced with the originals.
+ */
+ static final public String unescapeJavaString(String s) {
+ StringBuilder sb = new StringBuilder();
+ int last = 0;
+ int pos = 0;
+ while ((pos = s.indexOf('\\', pos)) >= 0) {
+ sb.append(s.substring(last, pos));
+ if (++pos == s.length()) break;
+ char c = s.charAt(pos);
+ String m = map.get(c);
+ if (m != null) sb.append(m);
+ else sb.append(c);
+ last = ++pos;
+ }
+ sb.append(s.substring(last));
+ return sb.toString();
+ }
+
+
+ /**
* Returns a stack trace of a Throwable as a string, rather than the
* default behaviour of sending it to stderr.
*
More information about the Mulgara-svn
mailing list