Java字符串中的Null\u0000?

Java字符串中的Null\u0000?,java,string,null,Java,String,Null,是否有充分的理由不在Java字符串中使用\u0000作为分隔符?我将自己对字符串进行编码和解码 这是为了将用户输入的字符串列表(我希望输入?)保存到Eclipse首选项中,并将其读回。列表的大小可能是可变的,因此我不认为我可以将每个项目保存为自己的首选项。好吧,有可能任何以某种方式转换字符串的操作都会将其删除。哦,还有一种微弱的可能性,你可能想在输入中保留任何空值 您将如何处理它?如果以后需要对其进行解析,字符串解析函数可能不会接受null作为分隔符的值。如果数据保留在Java中,为什么不使用数

是否有充分的理由不在Java字符串中使用\u0000作为分隔符?我将自己对字符串进行编码和解码


这是为了将用户输入的字符串列表(我希望输入?)保存到Eclipse首选项中,并将其读回。列表的大小可能是可变的,因此我不认为我可以将每个项目保存为自己的首选项。

好吧,有可能任何以某种方式转换字符串的操作都会将其删除。哦,还有一种微弱的可能性,你可能想在输入中保留任何空值


您将如何处理它?

如果以后需要对其进行解析,字符串解析函数可能不会接受null作为分隔符的值。

如果数据保留在Java中,为什么不使用数组或列表呢?

过去有些库错误地将Java字符串处理为以null结尾的字符串。我不知道这是否仍然是真的,但值得记住这些事情。特别是当您与将以null结尾的字符串处理的外部库进行互操作时。

听起来像是您试图使用它来存储列表。为什么不使用
ArrayList
?在字符串中包含
\u0000
是不好的。考虑使用字节数组。
正如您所说,这是为了在eclipse设置中保存某些内容,我不会使用嵌入式NUL,因为这些文件似乎是用户可读的(至少在我的~/.eclipse中是这样)。你想保存什么?例如,您可以将项目串接(“项目2”“项目2”)。只是不要把它复杂化太多

它将被存储到一个Eclipse首选项中,用于跨会话的持久性,它只接受字符串和原语。在这种情况下,我将序列化它,但也会按照您建议的方式进行存储。它将被存储到一个Eclipse首选项中,用于跨会话的持久性,它只接受字符串和原语。为什么带0的字节数组比带\u0000的字符串更好?因为某些函数可能不希望嵌入NUL,并且可能会将其删除。它正在尝试保存命令行参数,以便稍后回放。我认为定界符必须是不能在键盘上键入的东西。eclipse不提供一个函数来将某些东西存储到它的设置中吗?除了它的首选项功能之外的东西吗?我的问题是,我不知道这个列表会有多长,所以我不能每个都使用一个首选项。感谢Jon Skeet()允许我的答案被接受。这对于移动应用来说是非常正确的