CharBuffer 到字符串?
CharBuffer to string?
如何从CharBuffer中获取字符串"hi"? toString()
好像不行。
val a = CharBuffer.allocate(10);
a.put('h');
a.put('i');
val b = a.toString();
运行 上述代码后的变量状态:
CharBuffer
是相当低级的,真正用于 I/O 的东西,所以乍一看似乎不合逻辑。在您的示例中,它实际上 returned 了一个包含您未设置的剩余 8 个字节的字符串。要使其成为 return 您的数据,您需要像这样调用 flip()
:
val a = CharBuffer.allocate(10);
a.put('h');
a.put('i');
a.flip()
val b = a.toString();
您可以在 Buffer
的文档中找到更多信息
对于更典型的用例,使用起来更容易StringBuilder
:
val a = StringBuilder()
a.append('h')
a.append('i')
val b = a.toString()
或者甚至使用包装 StringBuilder
:
的 Kotlin 实用程序
val b = buildString {
append('h')
append('i')
}
如何从CharBuffer中获取字符串"hi"? toString()
好像不行。
val a = CharBuffer.allocate(10);
a.put('h');
a.put('i');
val b = a.toString();
运行 上述代码后的变量状态:
CharBuffer
是相当低级的,真正用于 I/O 的东西,所以乍一看似乎不合逻辑。在您的示例中,它实际上 returned 了一个包含您未设置的剩余 8 个字节的字符串。要使其成为 return 您的数据,您需要像这样调用 flip()
:
val a = CharBuffer.allocate(10);
a.put('h');
a.put('i');
a.flip()
val b = a.toString();
您可以在 Buffer
的文档中找到更多信息对于更典型的用例,使用起来更容易StringBuilder
:
val a = StringBuilder()
a.append('h')
a.append('i')
val b = a.toString()
或者甚至使用包装 StringBuilder
:
val b = buildString {
append('h')
append('i')
}