Я использую Selenium Webdriver с привязкой Java, и я тестирую функцию сортировки, в которой у вас есть значения, расположенные в arraylist = {"4"","4.5"","5.5""}
. Таким образом, в основном строка содержит десятичные точки, а также двойную кавычку. У меня следующий код ниже. Проблема в том, что я продолжаю ошибаться из-за того, что когда он сравнивает текущий с предыдущим, он приходит с ложью. Спасибо за помощь.Как проверить возрастающий порядок строковых значений для списка массивов?
public Boolean checkAscendingOrderScreensize(List<String> list){
if(list == null || list.isEmpty())
return false;
if(list.size() == 1)
return true;
for(int i=1; i<list.size();i++)
{
String current = list.get(i).toString();
String previous = list.get(i-1).toString();
current = current.replace(",",".");
current = current.replace("\"", "");
previous = previous.replace(",",".");
previous = previous.replace("\"", "");
if(current.compareTo(previous)>0)
return false;
}
return true;
}
Если вы хотите, чтобы ваш список в порядке возрастания, то вы * хотите * 'current.compareTo (предыдущий)' to be '> 0', правильно? Поскольку '> 0' означает, что' current' больше, чем 'предыдущий'. Результатом будет '<0', если« ток меньше », и 0, если они равны. Кстати, это будет сравнивать строки, сравнивая каждый символ; он не будет сравнивать числовые значения. Это означает '' 4.5 "'> '" 4 "' и '" 5.5 "'> '" 4.5 "' то, что вы хотите, но это также означает '' 9 "'> '" 14 "', которые вы не можете хотеть. – ajb
Извините, я хотел сделать это наоборот, я делал некоторые отрицательные тесты на нем и забыл изменить его на оригинальное. –