gpt4 book ai didi

c# - 将字符串转换并附加到现有字节数组中

转载 作者:行者123 更新时间:2023-12-01 13:03:04 27 4
gpt4 key购买 nike

我正在致力于将现有的 C# 项目转换为 Java/Android。我正在寻找相当于 UTF8Encoding.GetBytes(String, Int32, Int32, Byte[], Int32) 的 Java 。看一下下面的C#代码,如何将字符串包添加到数据字节数组中?我查看了 String.getBytes() 方法,但它不一样。

int length = packet.Length;

byte[] data = new byte[6 + length + 1];
data[0] = (byte)VAR1;
data[1] = 1;

**Encoding.UTF8.GetBytes(packet, 0, length, data, 6);**

data[6 + length] = (byte)VAR2;

data[5] = (byte)(length % 256);
length /= 256;
data[4] = (byte)(length % 256);
length /= 256;
data[3] = (byte)(length % 256);
length /= 256;
data[2] = (byte)(length % 256);

最佳答案

好吧,鉴于您指的是 ASCII 而不是 UTF-8,有两个直接选项:

中间字节数组

byte[] encodedText = text.getBytes(StandardCharsets.US_ASCII);
System.arraycopy(encodedText, 0, data, 6, encodedText.length);

这效率低下,但很简单。

直接字符集

CharsetEncoder encoder = StandardCharsets.US_ASCII.newEncoder();
CharBuffer charBuffer = CharBuffer.wrap(text);
ByteBuffer byteBuffer = ByteBuffer.wrap(data, 6, data.length - 6);
encoder.encode(charBuffer, byteBuffer, true);

可能更高效,但理解起来更复杂。

关于c# - 将字符串转换并附加到现有字节数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23408084/

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