Можно ли добавить данные в строку после добавления «\ 0» (null)?

У меня есть строка, которую я создаю, и мне нужно добавить в строку несколько символов «\ 0» (null). Между каждым нулевым символом находятся другие текстовые данные (только буквенно-цифровые символы ASCII).

Моя проблема в том, что в J2SE, когда вы добавляете первый ноль (\ 0), java затем, кажется, определяет, что это признак конца строки (аналогично C ++), и игнорирует все другие добавляемые данные. Ошибка не возникает, конечные данные просто игнорируются. Мне нужно заставить дополнительные конечные данные после нуля в строке. Я должен сделать это для устаревшей базы данных, которую я поддерживаю.

Я попытался закодировать / декодировать строку в надежде, что что-то вроде% 00 может ввести в заблуждение интерпретацию поведения строки, но когда я перекодирую строку, Java снова видит нулевой символ и удаляет все данные после первый нуль.

Обновление: вот соответствующий фрагмент кода. Да, я пытаюсь использовать Строки . Я собираюсь попробовать символы, но мне все равно нужно сохранить их в базе данных в виде строки, поэтому я подозреваю, что у меня возникнет та же проблема.

Немного предыстории.Я получаю данные через HTTP-сообщение с символом «\ n». Мне нужно удалить символы новой строки и заменить их на «\ 0». Метод « debug » - это простой метод, выполняющий System.out.println .

                String[] arrLines = sValue.split("\n");
                for(int k=0;k<arrLines.length;k++) {
                    if (0<k) {
                        sNewValue += "\0";
                    }
                    sNewValue+= arrLines[k];
                    debug("New value =" + sNewValue);
                }

sNewValue, String, фиксируется в базе данных и должен быть выполнен как String. То, что я наблюдаю, когда отображаю текущее значение sNewValue после каждой итерации в консоли, выглядит примерно так:

input is value1 \ nValue2 \ nValue3 Вывод на консоль дает мне этот код

value1
value1
value1

. Я ожидаю

value1
value1 value2
value1 value2 value3 

с непечатаемым нулем между значением1, значением2 и значением3 соответственно. Обратите внимание, что значение, фактически сохраняемое обратно в базу данных, также является просто «значением1». Так что проблема не только в отображении консоли. Данные после \ 0 игнорируются.

8
задан angryITguy 24 December 2011 в 10:34
поделиться