[英]Printing an Array's components but it prints null + the value at the specified index (JAVA)
[英]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.