Код: Выделить всё
public String unicodePrint(String input) {
if (input != null && !input.isEmpty()) {
StringBuilder sbTitle = new StringBuilder();
System.err.println(input); // 挑战
final int length = input.length();
for (int offset = 0; offset < length;) {
final int codepoint = input.codePointAt(offset);
if (codepoint > 127) {
sbTitle.append(htlmDelim + codepoint);
} else {
sbTitle.appendCodePoint(codepoint);
}
offset += Character.charCount(codepoint);
}
input = sbTitle.toString();
System.err.println(input); // 挑战
}
return input;
}
Код: Выделить всё
for (int i = 0; i < input.length(); i++) {
int codepoint = input.codePointAt(i);
if (codepoint > 127) {
sbTitle.append(htlmDelim + codepoint);
} else {
sbTitle.appendCodePoint(codepoint);
}
}
挑战
Я добавляю точку останова в Eclipse и эту строку
Код: Выделить всё
final int length = input.length();
И это то, что я наблюдаю при отладке Eclipse и на машине с Linux.
Однако в Windows печатаются шесть, независимо от того, как я их извлекаю:
挑战
Что не так с моим кодом?