private char readNumericEscape(int radix, int len) { int value = -1; for (int endPos = Math.min(pos + len, data.length); pos < endPos; pos++) { int digit = hexDigit(data[pos]); if (digit == -1 || digit >= radix) break; if (value < 0) { value = digit; } else { value = value * radix + digit; } } if (value < 0) throw unexpected("expected a digit after \\x or \\X"); return (char) value; }
private char readNumericEscape(int radix, int len) { int value = -1; for (int endPos = Math.min(pos + len, data.length); pos < endPos; pos++) { int digit = hexDigit(data[pos]); if (digit == -1 || digit >= radix) break; if (value < 0) { value = digit; } else { value = value * radix + digit; } } if (value < 0) throw unexpected("expected a digit after \\x or \\X"); return (char) value; }