Как я могу выполнить итерации через unicode кодовые точки Строки Java?

Следующее исправление работает хорошо для меня.

// I am using Struts2 
ServletContext sc = (ServletContext) ac.get(StrutsStatics.SERVLET_CONTEXT);
fileInputStream = sc.getResourceAsStream("test.xls");

После развертывания файла war я могу получить файл из контекстного пути.

98
задан Florian Weimer 18 July 2017 в 16:47
поделиться

2 ответа

Да, Java использует кодировку в стиле UTF-16 для внутреннего представления строк и, да, она кодирует символы вне базовой многоязычной плоскости ( BMP ) с использованием Схема суррогатного материнства.

Если вы знаете, что будете иметь дело с символами вне BMP, то вот канонический способ перебора символов строки Java:

final int length = s.length();
for (int offset = 0; offset < length; ) {
   final int codepoint = s.codePointAt(offset);

   // do something with the codepoint

   offset += Character.charCount(codepoint);
}
136
ответ дан 24 November 2019 в 05:13
поделиться

Итерация по кодовым точкам подается в Sun как запрос функции.

См. Sun Bug Entry

Там также есть пример того, как перебирать String CodePoints.

6
ответ дан 24 November 2019 в 05:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: