【问题标题】:Java null char in string字符串中的Java空字符
【发布时间】:2011-11-27 09:26:24
【问题描述】:

我正在尝试在 Java 中构建一个最长为 3 且最短为 1 的字符串。

我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则,字符串将包含整数的字符版本。

    for (int i=0; i < mTypeSelection.length; i++){
        mMenuName[i] = (mTypeSelection[i] > -1 ? Character.forDigit(mTypeSelection[i], 10)  : '\u0000');

    }

这是我目前所拥有的,但是当我输出数组 {0,-1,-1} 的字符串而不是仅仅获取字符串“0”时,我得到的字符串是“0��”。

有谁知道我怎样才能得到我想要的结果。

谢谢,米

【问题讨论】:

  • 能否提供完整代码?你是如何打印结果的?
  • 听起来你说你想要的行为就是正在发生的事情 - 你最终在最终字符串的第 2 和第 3 位出现空字符。空字符不会终止 Java 中的字符串。是否要截断数组中第一个 -1 处的字符串?

标签: java string null char


【解决方案1】:

我假设您想在第一个空字符处终止字符串,就像在 C 中那样。但是,您可以在 Java 中的字符串中包含空字符,因此它们不会终止字符串。我认为以下代码会产生您所追求的行为:

StringBuilder sb = new StringBuilder();
for (int i=0; i < mTypeSelection.length; i++){
    if(mTypeSelection[i] > -1) {
        sb.append(Character.forDigit(mTypeSelection[i], 10));
    } else {
        break;
    }
}
String result = sb.toString();

【讨论】:

    猜你喜欢
    • 2010-09-24
    • 1970-01-01
    • 2012-07-12
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多