gpt4 book ai didi

java - 如何将字符串中的每个字符转换为8位int? java

转载 作者:行者123 更新时间:2023-12-02 01:34:49 24 4
gpt4 key购买 nike

有人建议我使用类似 TCP 的校验和,它由(整数)序列和 ack 字段值的总和组成,添加到数据包有效负载字段的逐字符总和中(即,对待每个字符就好像它是一个 8 位整数,然后将它们加在一起)。

我假设它会遵循以下原则:

char[] a = data.toCharArray();
for (int i = 0; int < len; i++) {
...
}

虽然我对如何完成实际转换一无所知?

我的数据字符串,我希望遍历该字符串(转换为字符数组(尽管如果有更好的方法来做到这一点,请告诉我!) )) 现在我准备迭代一下如何将每个字符转换为 int。然后我将对总数进行求和。

最佳答案

由于 String 包含 Unicode,而 char 是 Unicode 的两字节 UTF-16 实现,因此最好先将 String 转换为字节:

byte[] bytes = data.getBytes(StandardCharsets.UTF_8);
data = new String(bytes, StandardCharsets.UTF_8); // Inverse.

int crc = 0;
for (byte b : bytes) {
int n = b & 0xFF; // An int 0 .. 255 without sign extension
crc ^= n;
}

现在您可以处理字符串的任何 Unicode 内容。当使用足够的 ASCII 字母(例如中文 HTML 页面)时,UTF-8 是最佳选择。 (对于中文纯文本 UTF-16 可能更好。)

关于java - 如何将字符串中的每个字符转换为8位int? java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55380200/

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