aChar = theString.charAt(x++);
if (aChar == '\\') {
aChar = theString.charAt(x++);
if (aChar == 'u') {
// Read the xxxx
int value = 0;
for (int i &#61; 0; i <4; i&#43;&#43;) {
aChar &#61; theString.charAt(x&#43;&#43;);
switch (aChar) {
case &#39;0&#39;:
case &#39;1&#39;:
case &#39;2&#39;:
case &#39;3&#39;:
case &#39;4&#39;:
case &#39;5&#39;:
case &#39;6&#39;:
case &#39;7&#39;:
case &#39;8&#39;:
case &#39;9&#39;:
value &#61; (value <<4) &#43; aChar - &#39;0&#39;;
break;
case &#39;a&#39;:
case &#39;b&#39;:
case &#39;c&#39;:
case &#39;d&#39;:
case &#39;e&#39;:
case &#39;f&#39;:
value &#61; (value <<4) &#43; 10 &#43; aChar - &#39;a&#39;;
break;
case &#39;A&#39;:
case &#39;B&#39;:
case &#39;C&#39;:
case &#39;D&#39;:
case &#39;E&#39;:
case &#39;F&#39;:
value &#61; (value <<4) &#43; 10 &#43; aChar - &#39;A&#39;;
break;
default:
throw new IllegalArgumentException(
"Malformed \\uxxxx encoding.");
}
}
outBuffer.append((char) value);
} else {
if (aChar &#61;&#61; &#39;t&#39;)
aChar &#61; &#39;\t&#39;;
else if (aChar &#61;&#61; &#39;r&#39;)
aChar &#61; &#39;\r&#39;;
else if (aChar &#61;&#61; &#39;n&#39;)
aChar &#61; &#39;\n&#39;;
else if (aChar &#61;&#61; &#39;f&#39;)
aChar &#61; &#39;\f&#39;;
outBuffer.append(aChar);
}
} else
outBuffer.append(aChar);
}
return outBuffer.toString();
}
}