2014-01-28 4 views
5

Тип данных String в Java позволяет нам узнать, сколько символов unicode выходят в строке с помощью codePointCount; и как получить n-й символ Unicode с помощью codePointAt. Я был удивлен, если есть API, чтобы получить подстроку, содержащую первые N символов Unicode в Java.Как получить подстроку, содержащую первые N символов Unicode в Java

Спасибо,

ответ

7

Там не метод, который делает это в одном вызове, но offsetByCodePoints() поможет вам сделать это.

static String substring(String str, int idx, int len) { 
    return str.substring(idx, str.offsetByCodePoints(idx, len)); 
} 
+1

ли это не должно быть 'подстрока (str.offsetByCodePoints (0, IDX), str.offsetByCodePoints (0, IDX + LEN))'? – caw

+0

Это зависит от того, является ли параметр 'idx' символьным смещением или смещением кодовой точки. Методы строк обычно принимают смещения символов, а те, которые работают с кодовыми точками, направлены на преобразование смещений кодовых точек в смещения символов. – erickson

Смежные вопросы