Байтовый массив в Java - PullRequest
0 голосов
/ 16 ноября 2011

Может кто-нибудь объяснить, что происходит со строкой, когда она преобразуется в байтовый массив? что с ним происходит и как я могу добавить больше String к этому байтовому массиву ??

Например: Ракеты - это весело.

Ответы [ 2 ]

1 голос
/ 16 ноября 2011

Я думаю, что предыдущие сообщения хорошо освещали то, что происходит со строкой в ​​терминах 16-битного-8-битного представления.Вторая половина вашего вопроса, касающаяся роста байтового массива, обычно выполняется с помощью System.arraycopy (src, srcPos, dest, destPos, length).

String str="Rockets are fun.";
byte[] ba=str.getBytes();
byte[] bigger=new byte[23];
System.arraycopy(ba, 0, bigger, 0, ba.length);
byte[] toFly=" to fly.".getBytes();
System.arraycopy(toFly, 0, bigger, 15, toFly.length);
System.out.println(new String(bigger, "UTF-8"));
0 голосов
/ 16 ноября 2011

Когда строка преобразуется в байтовый массив, она просто берет каждый символ (обычно 1 байт) и преобразует его в текстовое значение ASCII простым преобразованием (или другой кодировкой, которая может означать 2 байта на символ, но я придерживаюськ простому примеру ASCII).На самом деле вы ничего не можете добавить к этому массиву, потому что массивы имеют один размер, и для изменения размера вам нужно скопировать этот массив в больший массив и вставить вместо него.Если вы хотите сделать конкатенацию строк, просто придерживайтесь операторов + = и + для строк, которые делают это для вас, или StringBuilder (или StringBuffer, я забыл, что это в Java), на случай, если вам потребуется много добавлять после каждого добавлениясоздает новые неизменяемые строки, которые довольно дороги, если их много делать.

...