gpt4 book ai didi

Java byte[] 到 String 分配给 String 时不起作用

转载 作者:行者123 更新时间:2023-12-01 07:22:38 26 4
gpt4 key购买 nike

我正在使用 Kafka 并按照本教程进行操作 ( https://cwiki.apache.org/confluence/display/KAFKA/Consumer+Group+Example )

经过一些调整后,代码可以编译,一切都可以正常运行。我的问题是我试图利用 Kafka 服务器发送给我的字节数组来进行一些处理。如果我使用默认代码,一切正常,字节数组将转换为字符串并显示在屏幕上。如果我尝试读取字节数组并将其分配给一个字符串,以便我可以将其显示到屏幕上,然后解析它,则什么也不会发生。

it.next().message() returns a byte array

默认代码:

ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
while (it.hasNext())
System.out.println("Thread " + m_threadNumber + ": " + new String(it.next().message()));

我的代码损坏了:

 ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
String msg= "";
while (it.hasNext())
msg = new String(it.next().message());
System.out.println("Thread " + m_threadNumber + ": " + msg);

有人能告诉我为什么我不能将字节数组分配给我的字符串吗?当然,如何修复我的故障?

我查看了:

Java byte to string

Convert byte to string in Java

converting byte[] to string

但它们似乎都不适用,它们都尝试在字符串初始化时将字节数组分配给字符串,而我在这里不能这样做。

最佳答案

您缺少大括号,因此您的 println 仅在最后一次执行。试试这个:

ConsumerIterator<byte[], byte[]> it = m_stream.iterator();
String msg= "";
while (it.hasNext())
{
msg = new String(it.next().message());
System.out.println("Thread " + m_threadNumber + ": " + msg);
}

关于Java byte[] 到 String 分配给 String 时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31615298/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com