Null \ u0000 в строке Java?

Есть ли веские причины не использовать \ u0000 в качестве разделителя в строке Java? Я бы сам кодировал и расшифровывал строку.

Это для сохранения списка введенных пользователем (я ожидаю, что ввод будет введен?) Строк в предпочтение Eclipse и его чтения. Список может быть переменного размера, поэтому я не думаю, что смогу сохранить каждый элемент по своему усмотрению.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
0
17 572
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Что ж, есть вероятность, что что-то, что каким-то образом преобразует строку, может ее лишить. Да, и слабая возможность того, что вы, возможно, захотите оставить во вводе какие-либо нули.

что ты собираешься с этим делать?

Если вам нужно проанализировать его позже, функции синтаксического анализа строки могут не принимать null в качестве значения для разделителя.

ОЧЕНЬ верно для мобильных приложений

sandalone 24.11.2012 12:26

Если данные остаются в Java, почему бы вместо этого не использовать массив или список?

Он будет сохранен в предпочтении Eclipse для сохранения между сеансами, который принимает только строки и примитивы.

Albert 25.11.2008 23:54

В этом случае я бы сериализовал его, но сохранение его так, как вы предложили, тоже, конечно, работает.

phihag 26.11.2008 01:44
Ответ принят как подходящий

Раньше были некоторые библиотеки, которые ошибочно обрабатывали строки Java как завершенные нулем. Не знаю, правда ли это до сих пор, но об этом стоит помнить. Особенно, если вы взаимодействуете с внешними библиотеками, которые будут обрабатывать строки как завершенные нулем.

Спасибо Джону Скиту (stackoverflow.com/questions/305223/jon-skeet-facts) за разрешение принять мой ответ.

Dinah 26.11.2008 07:29

Похоже, вы пытаетесь использовать его для хранения списка. Почему бы не использовать ArrayList<String>? Наличие \u0000 в строке - это плохо. Рассмотрите возможность использования байтового массива.

Как вы говорите, это для сохранения чего-то в настройках eclipse, я бы не стал использовать встроенные NUL, поскольку файлы кажутся читаемыми пользователем (по крайней мере, в моем ~ / .eclipse). Что ты хочешь сэкономить? Например, вы можете связать элементы («элемент 2» «элемент 2»). Только не усложняйте это слишком сильно.

Он будет сохранен в предпочтении Eclipse для сохранения между сеансами, который принимает только строки и примитивы. Почему массив байтов с 0 лучше, чем String с \ u0000?

Albert 25.11.2008 23:56

потому что некоторые функции могут не ожидать встроенных NUL и, возможно, их отбрасывать.

Johannes Schaub - litb 25.11.2008 23:59

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

Albert 26.11.2008 00:00

не предоставляет ли eclipse функцию для сохранения чего-либо в своих настройках?

Johannes Schaub - litb 26.11.2008 00:02

Что-то еще, кроме настройки предпочтений? Моя проблема в том, что я не знаю, каков будет этот список, поэтому я не могу использовать по одному предпочтению для каждого.

Albert 26.11.2008 00:03

Другие вопросы по теме