CharBuffer в строку?
1 ответ
Решение
CharBuffer
довольно низкоуровневый и действительно предназначен для ввода-вывода, поэтому поначалу может показаться нелогичным. В вашем примере он фактически вернул строку, содержащую оставшиеся 8 байтов, которые вы не установили. Чтобы он возвращал ваши данные, вам нужно вызвать
flip()
как это:
val a = CharBuffer.allocate(10);
a.put('h');
a.put('i');
a.flip()
val b = a.toString();
Вы можете найти больше в документации Buffer
Для более типичных случаев использования гораздо проще использовать:
val a = StringBuilder()
a.append('h')
a.append('i')
val b = a.toString()
Или даже используйте утилиту Kotlin, которая обертывает
StringBuilder
:
val b = buildString {
append('h')
append('i')
}