本文整理了Java中java.lang.Character.toCodePoint()
方法的一些代码示例,展示了Character.toCodePoint()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Character.toCodePoint()
方法的具体详情如下:
包路径:java.lang.Character
类名称:Character
方法名:toCodePoint
[英]Converts a surrogate pair into a Unicode code point. This method assumes that the pair are valid surrogates. If the pair are not valid surrogates, then the result is indeterminate. The #isSurrogatePair(char,char) method should be used prior to this method to validate the pair.
[中]将代理项对转换为Unicode代码点。此方法假定该对是有效的代理项。如果该对不是有效的代理项,则结果是不确定的。在使用此方法之前,应先使用#isSurrogatePair(char,char)方法来验证对。
代码示例来源:origin: google/guava
/**
* Asserts that a Unicode escaper escapes the given hi/lo surrogate pair into the expected string.
*
* @param escaper the non-null escaper to test
* @param expected the expected output string
* @param hi the high surrogate pair character
* @param lo the low surrogate pair character
*/
public static void assertUnicodeEscaping(
UnicodeEscaper escaper, String expected, char hi, char lo) {
int cp = Character.toCodePoint(hi, lo);
String escaped = computeReplacement(escaper, cp);
Assert.assertNotNull(escaped);
Assert.assertEquals(expected, escaped);
}
}
代码示例来源:origin: konsoletyper/teavm
@Override
public int accepts(int strIndex, CharSequence testString) {
char high = testString.charAt(strIndex++);
char low = testString.charAt(strIndex);
return (this.ch == Character.toLowerCase(Character.toUpperCase(Character.toCodePoint(high, low)))) ? 2 : -1;
}
代码示例来源:origin: line/armeria
int nextCodePoint() {
assert pos < end;
final char c1 = str.charAt(pos++);
if (Character.isHighSurrogate(c1) && pos < end) {
final char c2 = str.charAt(pos);
if (Character.isLowSurrogate(c2)) {
pos++;
return Character.toCodePoint(c1, c2);
}
}
return c1;
}
}
代码示例来源:origin: google/guava
return Character.toCodePoint(c1, c2);
代码示例来源:origin: termux/termux-app
private boolean wideDisplayCharacterStartingAt(int column) {
for (int currentCharIndex = 0, currentColumn = 0; currentCharIndex < mSpaceUsed; ) {
char c = mText[currentCharIndex++];
int codePoint = Character.isHighSurrogate(c) ? Character.toCodePoint(c, mText[currentCharIndex++]) : c;
int wcwidth = WcWidth.width(codePoint);
if (wcwidth > 0) {
if (currentColumn == column && wcwidth == 2) return true;
currentColumn += wcwidth;
if (currentColumn > column) return false;
}
}
return false;
}
代码示例来源:origin: aNNiMON/Lightweight-Stream-API
@Override
public int nextInt() {
final int length = ensureLength();
if (current >= length) {
throw new NoSuchElementException();
}
final char nextChar = charSequence.charAt(current++);
if (Character.isHighSurrogate(nextChar) && current < length) {
final char currentChar = charSequence.charAt(current);
if (Character.isLowSurrogate(currentChar)) {
current++;
return Character.toCodePoint(nextChar, currentChar);
}
}
return nextChar;
}
代码示例来源:origin: wildfly/wildfly
public ByteStringBuilder append(String s, int offs, int len) {
int c;
int i = 0;
while (i < len) {
c = s.charAt(offs + i++);
if (Character.isHighSurrogate((char) c)) {
if (i < len) {
char t = s.charAt(offs + i ++);
if (! Character.isLowSurrogate(t)) {
throw new IllegalArgumentException();
}
c = Character.toCodePoint((char) c, t);
} else {
throw new IllegalArgumentException();
}
}
appendUtf8Raw(c);
}
return this;
}
代码示例来源:origin: wildfly/wildfly
public ByteStringBuilder append(CharSequence s, int offs, int len) {
int c;
int i = 0;
while (i < len) {
c = s.charAt(offs + i++);
if (Character.isHighSurrogate((char) c)) {
if (i < len) {
char t = s.charAt(offs + i ++);
if (! Character.isLowSurrogate(t)) {
throw new IllegalArgumentException();
}
c = Character.toCodePoint((char) c, t);
} else {
throw new IllegalArgumentException();
}
}
appendUtf8Raw(c);
}
return this;
}
代码示例来源:origin: apache/hive
public static int getRandomSupplementaryChar() {
int lowSurrogate = 0xDC00 + rnd.nextInt(1024);
//return 0xD8000000 + lowSurrogate;
int highSurrogate = 0xD800;
return Character.toCodePoint((char)highSurrogate, (char)lowSurrogate);
}
代码示例来源:origin: apache/hive
public static int getRandomSupplementaryChar() {
int lowSurrogate = 0xDC00 + rnd.nextInt(1024);
//return 0xD8000000 + lowSurrogate;
int highSurrogate = 0xD800;
return Character.toCodePoint((char)highSurrogate, (char)lowSurrogate);
}
代码示例来源:origin: termux/termux-app
/** The width at an index position in a java char array. */
public static int width(char[] chars, int index) {
char c = chars[index];
return Character.isHighSurrogate(c) ? width(Character.toCodePoint(c, chars[index + 1])) : width(c);
}
代码示例来源:origin: wildfly/wildfly
private static int readCP(Reader r) throws IOException {
int hi, lo;
hi = r.read();
if (hi == -1) {
return -1;
}
if (Character.isHighSurrogate((char) hi)) {
lo = r.read();
if (lo == -1) throw log.unexpectedEof();
if (Character.isLowSurrogate((char) lo)) {
return Character.toCodePoint((char) hi, (char) lo);
} else {
throw new CharacterCodingException();
}
} else {
return hi;
}
}
代码示例来源:origin: twosigma/beakerx
private boolean JavaLetter_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return Character.isJavaIdentifierStart(_input.LA(-1));
case 1:
return Character.isJavaIdentifierStart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
return true;
}
private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) {
代码示例来源:origin: twosigma/beakerx
private boolean JavaLetterOrDigit_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 2:
return Character.isJavaIdentifierPart(_input.LA(-1));
case 3:
return Character.isJavaIdentifierPart(Character.toCodePoint((char)_input.LA(-2), (char)_input.LA(-1)));
}
return true;
}
代码示例来源:origin: konsoletyper/teavm
private int nextCodePoint() {
char high = pattern[nextIndex()];
if (Character.isHighSurrogate(high)) {
// low and high char may be delimited by spaces
int lowExpectedIndex = prevNW + 1;
if (lowExpectedIndex < pattern.length) {
char low = pattern[lowExpectedIndex];
if (Character.isLowSurrogate(low)) {
nextIndex();
return Character.toCodePoint(high, low);
}
}
}
return high;
}
代码示例来源:origin: redisson/redisson
+ (int) c);
char[] escaped = escape(Character.toCodePoint((char) pendingHighSurrogate, c));
if (escaped != null) {
outputChars(escaped, escaped.length);
代码示例来源:origin: netty/netty
private static int writeUtf8Surrogate(AbstractByteBuf buffer, int writerIndex, char c, char c2) {
if (!Character.isLowSurrogate(c2)) {
buffer._setByte(writerIndex++, WRITE_UTF_UNKNOWN);
buffer._setByte(writerIndex++, Character.isHighSurrogate(c2) ? WRITE_UTF_UNKNOWN : c2);
return writerIndex;
}
int codePoint = Character.toCodePoint(c, c2);
// See http://www.unicode.org/versions/Unicode7.0.0/ch03.pdf#G2630.
buffer._setByte(writerIndex++, (byte) (0xf0 | (codePoint >> 18)));
buffer._setByte(writerIndex++, (byte) (0x80 | ((codePoint >> 12) & 0x3f)));
buffer._setByte(writerIndex++, (byte) (0x80 | ((codePoint >> 6) & 0x3f)));
buffer._setByte(writerIndex++, (byte) (0x80 | (codePoint & 0x3f)));
return writerIndex;
}
代码示例来源:origin: redisson/redisson
private static int writeUtf8Surrogate(AbstractByteBuf buffer, int writerIndex, char c, char c2) {
if (!Character.isLowSurrogate(c2)) {
buffer._setByte(writerIndex++, WRITE_UTF_UNKNOWN);
buffer._setByte(writerIndex++, Character.isHighSurrogate(c2) ? WRITE_UTF_UNKNOWN : c2);
return writerIndex;
}
int codePoint = Character.toCodePoint(c, c2);
// See http://www.unicode.org/versions/Unicode7.0.0/ch03.pdf#G2630.
buffer._setByte(writerIndex++, (byte) (0xf0 | (codePoint >> 18)));
buffer._setByte(writerIndex++, (byte) (0x80 | ((codePoint >> 12) & 0x3f)));
buffer._setByte(writerIndex++, (byte) (0x80 | ((codePoint >> 6) & 0x3f)));
buffer._setByte(writerIndex++, (byte) (0x80 | (codePoint & 0x3f)));
return writerIndex;
}
代码示例来源:origin: termux/termux-app
private void assertLineStartsWith(int... codePoints) {
char[] chars = row.mText;
int charIndex = 0;
for (int i = 0; i < codePoints.length; i++) {
int lineCodePoint = chars[charIndex++];
if (Character.isHighSurrogate((char) lineCodePoint)) {
lineCodePoint = Character.toCodePoint((char) lineCodePoint, chars[charIndex++]);
}
assertEquals("Differing a code point index=" + i, codePoints[i], lineCodePoint);
}
}
代码示例来源:origin: termux/termux-app
protected TerminalTestCase assertLineStartsWith(int line, int... codePoints) {
char[] chars = mTerminal.getScreen().mLines[mTerminal.getScreen().externalToInternalRow(line)].mText;
int charIndex = 0;
for (int i = 0; i < codePoints.length; i++) {
int lineCodePoint = chars[charIndex++];
if (Character.isHighSurrogate((char) lineCodePoint)) {
lineCodePoint = Character.toCodePoint((char) lineCodePoint, chars[charIndex++]);
}
assertEquals("Differing a code point index=" + i, codePoints[i], lineCodePoint);
}
return this;
}
内容来源于网络,如有侵权,请联系作者删除!