它是一个非常简单的解决方案:因为您知道userStringArray
始终会小于或等于mainStringArray
,因此您可以通过userStringArray
执行for循环。然后您需要使用userStringArray.length
注意到userStringArray
的长度,并使用该长度值来获取mainStringArray
的部分,该部分在userStringArray
中没有对应的元素,然后继续对这些额外字符执行任何操作。
您可以选择使用ArrayLists而不是数组,但是您必须通过检查isEmpty()
条件来更改您的循环以解决从空ArrayList中删除值的问题。其余的逻辑可以是相同的。
编辑:
这个问题很暧昧。因此,我将粗略地告诉你如何去做和ArrayLists一样的事情。代码的唯一有形区别是检查userStringArray.isEmpty()。
import java.util.ArrayList;
ArrayList<Double> newValueArray = new ArrayList();
ArrayList<Double> userStringArray = new ArrayList();
ArrayList<Double> mainStringArray = new ArrayList();
for (int i = 0; i < mainStringArray.size(); i++) {
if(!userStringArray.isEmpty){
if (userStringArray.get(i).equals(mainWordsArray.get(i))){
newvalueArray.remove(i);
newvalueArray.add(i, valueArray.get(i));
} else {
if (mainStringArray.get(i).equals(missingWordsArray.get(i))){
newValueArray.remove(i);
newValueArray.add(i, 0);
}
}
System.out.println(mainStringArray[i] + " " + newValueArray.get(i));
}
}
你应该避免使用数组,如果可以的话,并使用ArrayList而不是 – 2011-03-01 09:17:29
这就是数组的问题。他们不可调整大小。您应该开始查看ArrayList的文档。 – asgs 2011-03-01 09:26:45
@Shervin如果他使用完全相同的方法,但与ArrayLists,而不是你所建议的,它仍然会给一个java.lang.IndexOutOfBoundsException。尝试从空ArrayList中删除。除非你检查isEmpty当然。 – 2011-03-01 09:38:31