Java字符串中的空字符问题

5
我试图在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��"。
请问有谁知道我如何获得想要的结果。
谢谢,m

你能提供完整的代码吗?你是如何打印输出结果的? - srikanta
1
听起来你想要的行为就是正在发生的 - 你最终得到的字符串在第2和第3个位置上有空字符。在Java中,空字符不会终止字符串。你是否想要在数组中的第一个-1处截断字符串? - Timothy Jones
1个回答

6
我假设您想在第一个null字符处终止字符串,就像在C语言中那样。但是,在Java中,您可以在字符串中包含null字符,因此它们不会终止字符串。我认为以下代码将产生您想要的行为:
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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接