Запишите способ removeShorterStrings
, который принимает в качестве параметра ArrayList<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]
.
В чем проблема?
«Советами, чтобы сделать хорошо в Java» не помещается на этом сайте. Либо чтение Intro To Programming, либо Intro To Java book (Google для хорошего) или [принятие] (https://www.edx.org/) [a] (https://www.udacity.com/) [ конечно] (https://www.coursera.org/), который объясняет, что все может помочь. Вы также можете найти книгу Логического мышления или курс где-нибудь. Чтение базовых программных блогов также может помочь. – Dukeling