字符串中的 Java 空字符

标签 java string null char

我正在尝试用 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�”。

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

谢谢,我

最佳答案

我假设您想在第一个空字符处终止字符串,就像在 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();

关于字符串中的 Java 空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7592466/

相关文章:

java - 如何在java中读取只有值的配置文件?

java - Elasticsearch中的49条记录后发生异常

c - 如果字符串已经有一个,避免添加另一个 '\0'?

java - 为什么我的 Spring @Autowired 字段为空?

c# - 为什么一个null返回可以被测试而另一个会抛出异常?

sqlite - 这是 SQLite 使空值最后出现的正确语法吗?

java - Maven 使用 Surefire exceptTests 选项排除测试

java - 测试 validator 方法时,JUnit 测试因 NPE 失败

c - 为什么 strcpy 不能正常工作

在c中的特殊运算符之前/之后复制字符