gpt4 book ai didi

UTF-8 字符串的 java.lang.NumberFormatException

转载 作者:行者123 更新时间:2023-11-30 07:27:15 26 4
gpt4 key购买 nike

以下是我为解决此错误而采取的步骤。

move_to_send = Integer.toString(b_id); // b_id >= 0 && b_id <= 8

// Send over socket
byte[] buf = move_to_send.getBytes();
DatagramPacket packet = new DatagramPacket(buf, buf.length, ADDRESS, opp_port);
socket.send(packet);

byte[] buf = new byte[GAME_DATA.BUF_SIZE];
DatagramPacket packet = new DatagramPacket(buf, GAME_DATA.BUF_SIZE);
socket.receive(packet);
byte[] data = packet.getData();
move_received = new String(data, "UTF-8");

// Error then occurs at this line
int move = Integer.parseInt(move_received);

我只是想通过套接字发送一个整数。也许有更好的方法?我仍然想知道为什么会出现此错误,因为如果我打印字符串 move_received 它是单个数字字符串

最佳答案

您应该改用 getBytes("UTF-8")

没有看到 trim 解决它的评论,但仍然 - 添加一些信息。

getBytes 返回系统默认字符集中的字符串,因此这会导致您的字符串出现乱码。

但是,由于您的 String 仅包含数字 - 并且数字在 ASCII 范围内 - 这应该不会导致您遇到的问题 - 因为大多数字符集都像 ISO-XXXX是一字节字符集,UTF-8也是用一字节表示ASCII字符。

无论如何,这对 future 都是很好的做法。

关于UTF-8 字符串的 java.lang.NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860846/

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