Java 将字符作为八位字节添加到现有字节数组?

Java add characters as octet to existing byte array?

基本上我有

byte[] arr = new byte[500];
int cnt = 0;
String[] str = {'aaa','bbb','ccc');
for (String label : str){
   arr[cnt++] = label.subString(0,1).getBytes();
}

最终目标是让 arr[0] 成为 'a' 作为一个字节,arr[1] 'a' 作为一个字节等。我会调试,但我遇到了问题并且希望得到一些澄清。我知道 getBytes() returns 一个 byteArray,但由于它的结果只会是 1 个字节(因为它是单个字符)我可以做我做的事情还是这会导致数组嵌套数组

arr = {[aAsByte],[aAsByte]...

您可以只用第二个 for 循环来循环 String 的每个字符并将其转换为 byte。请注意,从 charbyte 的转换可能会导致信息丢失,但如果您的字符只是小写字母,则不会发生这种情况。

public static void main(String[] args) {
    byte[] arr = new byte[500];
    int cnt = 0;
    String[] str = {"aaa","bbb","ccc"};
    for (String label : str){
        for (char c : label.toCharArray()) {
            arr[cnt++] = (byte) c;
        }
    }
    System.out.println(Arrays.toString(arr));
}