2016-02-27 1 views
2

По существу у меня естьJava добавить символы как октет в существующий массив байтов?

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

Конечной целью является иметь обр [0] будет «а» байт, обр [1] «а» байт и т.д. Я бы отладки, но я имея проблемы и надеялся на некоторое разъяснение. Я знаю, что getBytes() возвращает byteArray, но так как это результат будет только когда-либо 1 байт (поскольку это единственный символ), я могу сделать то, что я сделал или это приводит к массиву вложенных массивов, например

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

ответ

1

Вы можете просто иметь вторую петлю for, которая пересекает каждый символ String и отбрасывает его на byte. Обратите внимание, что приведение от char к byte может привести к потере информации, но это не произойдет, если ваши символы имеют только строчные буквы в алфавитном порядке.

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)); 
} 
+0

Спасибо! Это всегда так просто после факта. Нужно больше кофе, я думаю – user2886972

 Смежные вопросы

  • Нет связанных вопросов^_^