private static int CodePoint(char[] a) { if (a != null) { if (a.Length == 1 && JavaUtil.IsValidCodePoint(a[0])) { return(a[0]); } else { if (a.Length == 2 && Char.IsHighSurrogate(a[0]) && Char.IsLowSurrogate(a[1])) { return(JavaUtil.ToCodePoint(a[0], a[1])); } } } return(-1); }