У меня есть следующий код, чтобы пройти через bytebuffer
полный chars
в Java
и построить string
.Java абонент может найти нулевой символ в ByteBuffer вернулся из класса, но не тогда, когда перебирая в ByteBuffer в классе
StringBuilder actualString = new StringBuilder();
for(int i = 0; i < length; i++)
{
if((char)bbuf.get(i) != '\0');
{
actualString.append((char)bbuf.get(i));
System.out.println("ascii code is " + bbuf.get(i));
}
}
код работает правильно и останавливается на \0
(нулевой символ), когда возникает, когда bytebuffer
был получил с помощью вызывающего абонента к классу и итерация, где функция Вызывающий содержится.
, например
new bufclass = bufclass
buffclass.getbytebuffer
run code from above
Однако, когда я ставлю этот код после bytebuffer
производится и выделяется в классе, где bytebuffer
не содержится его никогда не останавливается на \0
характер.
пример того, как это сделано будет
create bytebuffer and allocate bytebuffer
run code to iterate from above
Почему мой код работает при переборе через bytebuffer
с помощью вызывающего абонента к классу, чтобы получить bytebuffer
, но не работает, когда код был добавлен класс, содержащий bytebuffer
?
Отметим, что это мои результаты при печати кодов символов ASCII
, и да, я попробовал if the byte is equal to 0
, который тоже не работал.
ascii code is 116
ascii code is 101
ascii code is 115
ascii code is 116
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
ascii code is 0
Пожалуйста, попробуйте перефразировать ваш вопрос. Простые предложения, предметный объект-глагол. Я читал ваш вопрос, как три раза, и до сих пор не знаю, о чем вы говорите. – GhostCat
есть вызывающий, который содержит код выше, bytebuffer получен с использованием вызывающего абонента и работает правильно. код был помещен в класс, в котором содержится байтовый буфер, и код не работает, когда он используется с bytebuffer. – jgr208
Никогда не помещайте больше комментариев в комментарии. Обновите вопрос. – GhostCat