Код: Выделить всё
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);
}
}
挑战
Код: Выделить всё
I breakpointed in Eclipse and this line
final int length = input.length();
gave 2. But clearly, as you can see from the results,
in a windows non-debug situation, it gives 6.
Однако в Windows выводятся шесть, независимо от того, как я их извлекаю:
挑战
Что не так с моим кодом?