gpt4 book ai didi

java - Java 中使用适当截断的 byte[] 到 String 转换

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

我有一个大小为 200 的字节数组,其中包含使用 socket.receive() 接收的数据。假设数据包数据是“hello”。

int size = 200;
DatagramPacket packet = new DatagramPacket(new byte[size], size);
socket.receive(packet);
byte[] byte1 = packet.getData();

我尝试将字节数组转换为字符串,尽管它只打印出“hello”字符串,但字符串长度为200。

String result = new String(byte1); // .toString();
System.out.println(result.length()); --> 200
System.out.println(result); ---> hello

当从 byte[] 转换字符串时,如何截断字符串以仅包含“hello”?

添加

根据 Malchow 的回答,这解决了我的问题:

int packetLength = packet.getLength();
byte[] byte1 = packet.getData();
String result = new String(byte1);
return result.substring(0, packetLength);

最佳答案

也许您应该尝试在收到数据后检查收到的数据的长度:

http://docs.oracle.com/javase/1.5.0/docs/api/java/net/DatagramPacket.html#getLength%28%29

这应该是4(在调用socket.receive()之后)

关于java - Java 中使用适当截断的 byte[] 到 String 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16159906/

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