编写一个removeShorterStrings
以 anArrayList<String>
作为参数的方法,并从每对连续的值中删除该对中较短的字符串。
例如,假设一个ArrayList
被调用list
包含以下值:{"four", "score", "and", "seven", "years", "ago"}
在第一对"four"
和"score"
中,较短的字符串是"four"
。
在第二对"and"
和"seven"
中,较短的字符串是"and"
。
在第三对"years"
和"ago"
中,较短的字符串是"ago"
。
因此,调用:removeShorterStrings(list);
应该删除这些较短的字符串,留下如下列表:{"score", "seven", "years"}
.
如果存在平局(两个字符串的长度相同),您的方法应该删除该对中的第一个字符串。如果列表中有奇数个字符串,则应将最终值保留在列表中。
public void removeShorterStrings(ArrayList <String> a){
for(int i=0;i<a.size()-1;i+=2){
String word=a.get(i);
String word2=a.get(i+1);
if(a.size()%2==0 && word.length()<word2.length()){
a.remove(i);
if(word.length()==word2.length()){
a.remove(i);
}
}
}
}
呼吁["four", "score", "and", "seven", "years", "ago"]
。
我的代码给了我[score, and, seven, years, ago]
而不是[score, seven, years]
.
有什么问题?