【问题标题】:Null \u0000 in Java String?Java字符串中的空\u0000?
【发布时间】:2010-09-24 01:02:40
【问题描述】:

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

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

【问题讨论】:

    标签: java string null


    【解决方案1】:

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

    【讨论】:

    • 它将被存储到 Eclipse 首选项中,用于跨会话的持久性,它只接受字符串和原语。
    • 在这种情况下,我会对其进行序列化,但按您建议的方式存储它也可以正常工作。
    【解决方案2】:

    曾经有一些库错误地将 Java 字符串处理为空终止。我不知道这是否仍然是真的,但值得记住这些事情。特别是如果您与将字符串处理为空终止的外部库进行互操作。

    【讨论】:

    【解决方案3】:

    嗯,任何以某种方式转换字符串的东西都可能会剥离它。哦,您可能希望在输入中保留任何空值。

    你打算用它做什么?

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 非常适合移动应用
      【解决方案5】:

      听起来您正在尝试使用它来存储列表。为什么不使用 ArrayList<String> ?在字符串中有\u0000 是不好的。考虑使用字节数组。

      正如您所说的在 Eclipse 设置中保存某些内容,我不会使用嵌入式 NUL,因为这些文件似乎是用户可读的(至少在我的 ~/.eclipse 中)。你想保存什么?例如,您可以对项目进行字符串化(“项目 2”“项目 2”)。只是不要太复杂。

      【讨论】:

      • 它将被存储到 Eclipse 首选项中,用于跨会话的持久性,它只接受字符串和原语。为什么带有 0 的字节数组比带有 \u0000 的字符串更好?
      • 因为某些函数可能不期望嵌入 NUL 并可能将它们剥离。
      • 它正在尝试保存命令行参数以便稍后播放。我认为分隔符必须是无法在键盘上键入的内容。
      • eclipse 不提供将某些内容存储到其设置中的功能吗?
      • 除了它的偏好工具之外还有什么?我的问题是我不知道这个列表会有多长,所以我不能每个使用一个偏好。
      猜你喜欢
      • 2016-05-23
      • 2015-05-13
      • 1970-01-01
      • 2018-05-28
      • 2011-11-27
      • 1970-01-01
      • 2012-04-12
      • 2012-07-12
      • 2012-08-14
      相关资源
      最近更新 更多