Ваш код выглядит в основном правильно. Первый параметр decode
- это байтовый массив, из которого вы хотите создать строку.
Из документов:
public static String decode(byte[] utf8, int start, int length)
Он говорит utf8
только для того, чтобы сказать, что он ожидает, что ваш байтовый буфер будет в формате UTF-8 (который Text
использует по умолчанию). Итак, ваш код будет:
Text.decode(t.getBytes(), start+7, end);
, поскольку decode
является статической функцией. Кроме того, если посмотреть на источник для Text
, это не должно увеличить ваш объем памяти, поскольку getBytes()
возвращает ссылку на базовый байтовый массив, который содержит объект Text
.