我正在使用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(以前)'是'> 0',對不對?因爲'> 0'表示'current'大於'previous'。如果'current is less',結果將是'<0',如果相等,則結果爲0。順便說一下,這將通過比較每個字符來比較字符串;它不會比較數字值。這意味着''4.5「'>'」4「'和'5.5」'>'「4.5」'這是你想要的,但它也意味着''9「'>'」14「'你可能不會想。 – ajb
對不起,我打算以相反的方式做,我正在做一些負面測試,並忘記將其改爲原來的。 –