繁体   English   中英

打印字符串数组也打印为null

[英]Printing string array also prints null

当我打印字符串数组的内容时,输出也会打印'null'。 我不确定这有什么问题。 这是输出,我期望的是没有'null'的输出

null(wa?>=0)nullnull*(wo?>=0)nullnull*(4*wa?+7*wo?>=50)nullnull*(d1=10)nullnull*((d2=1)+(k=2))nullnull

谢谢,感谢您的帮助。 我会在初学者水平上说我的Java技能,并且我在两周后开始了。

这是实际的代码:

        String[] arrStr = new String[50];
        int countStr = 0;

        for (int i = 0; i < para.length; i++) {
            if (para[i] == '(') {
                count = count + 1;
            }
            if (para[i] == ')') {
                count = count - 1;
            }
            if (count > 0) {
                arrStr[countStr] = arrStr[countStr] + para[i];
            } else {
                if (para[i] == ')') {
                    arrStr[countStr] = arrStr[countStr] + para[i];
                    countStr += 1;
                } else {
                    countStr += 1;
                    arrStr[countStr] = arrStr[countStr] + para[i];
                    // System.out.println(para[i]);
                }
            }
        }
        System.out.println(countStr);

        for (int i = 0; i < countStr; i++) {
            System.out.print(arrStr[i]);
        }

在此部分之前,我正在从word文档中读取以下字符串:

(wa?>=0)AND(wo?>=0)AND(4*wa?+7*wo?>=50)AND(d1=10)AND((d2=1)+(k=2))

我认为问题可能是由于这条线:

arrStr[countStr] = arrStr[countStr] + para[i]; 

由于arrStr[countStr]最初为null并且我向其添加了一个元素,因此将其保存为null+para[i] 你认为有可能吗?

就像我尝试的那样: System.out.println(arrStr[0]); 我把输出作为

null(wa?>=0)
System.out.println(null + "Bla");

打印nullBla 表示为String的null为“null”。 这里的问题是,最初所有的String []都是由null组成的。 您需要先将它们初始化。 通常情况下,

Arrays.fill(arrStr, "");

应该做。

如果arrStr任何元素在arrStr为null,它将忠实地打印出来。

在不知道代码中的细节的情况下,您可以确保数组中的任何元素都不为null(确保长度匹配,并且您不是在arrStr跳过元素,或者在打印元素之前检查null

您没有初始化arrStr数组的值,只是为它分配大小,因此数组的每个元素都为null。 为数组的元素赋值时,将其值(null)与para[i]的值连接起来。

您应该在使用之前初始化数组:

String[] arrStr = new String[50];
for (int i = 0; i < arrStr.length; i++) {
    arrStr[i] = "";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM