我想知道我在做什么错误。我有一个表加载到1d数组,每个元素是一个行,并且值是制表符分隔。检查Java中的数组中的字符串
例如(而不是\吨,它实际上是空白标签):
array[0] = "##Misc data 1";
array[1] = "##Misc data 2";
array[3] = "#Field1\tField2\tField3";
array[4] = "LOW\tABC\tDEF"
array[5] = "HIGH\tXYZ\t123"
我想要的阵列是
array[0] = "";
array[1] = "";
array[3] = "#Field1\tField2\tField3";
array[4] = ""
array[5] = "HIGH\tXYZ\t123"
我现在有该代码是
for (int i = 0; i < array.length; i++) {
if (!array[i].contains("\t") || !array[i].contains("HIGH") || !array[i].contains("#")) {
array[i] = "";
}
}
这使得这样所有的数组中的元素是“”。我想知道这是为什么,以及我可以改变这一点。
编辑:感谢您对您的所有意见和建议,我已经在你的指导了它。
for (int i = 0; i < array.length; i++) {
if (array[i].contains("\t")) {
if (array[i].contains("HIGH") || array[i].contains("#")) {
// do nothing
} else {
array[i] = "";
}
} else {
array[i] = "";
}
}
可能是我,但你想要的对我来说有点不清楚。你能澄清更好的PLZ吗? –
在你的例子中,为什么“LOW \ t”被清除,但“HIGH \ t”不是?一个术语是否优先?你测试所有这些,然后总是做同样的事情。 – markspace