将字符串转换为整数后的java值排序列表
我正在做一些selenium自动化测试用例,并使用下面的代码获取web元素列表将字符串转换为整数后的java值排序列表,java,sorting,selenium,selenium-webdriver,Java,Sorting,Selenium,Selenium Webdriver,我正在做一些selenium自动化测试用例,并使用下面的代码获取web元素列表 List<WebElement> list = GlobalVariables.BrowserDriver.findElements(By.xpath(".//*[@id='Tbls_T']/tbody/tr/td[4]")); 所以我得到的是字符串格式的值。下面给出了样本值 -十万 -80,000 0.100 2. 87.270 3000.000 我是否要按排序顺序检查这些值?为此,我想我应该转换成整
List<WebElement> list = GlobalVariables.BrowserDriver.findElements(By.xpath(".//*[@id='Tbls_T']/tbody/tr/td[4]"));
所以我得到的是字符串格式的值。下面给出了样本值
-十万
-80,000
0.100
2.
87.270
3000.000
我是否要按排序顺序检查这些值?为此,我想我应该转换成整数,然后使用某种排序方法进行检查。为此,我尝试将值转换为整数列表,然后使用一些排序算法(如Guava)检查排序。因为消极的价值观,我很难做到这一点
是否有任何方法可以检查上述问题的排序顺序以及值的顺序
提前谢谢
请使用另一个double和Collections.sort()列表。您可能需要删除字符串中的逗号
public class ConvertToIntSort
{
public static void main( String[] args )
{
String[] strlist = {"-100000","0.100", "2" , "3000.000","87.270", "-80000" };
java.util.List<String> stringlist = Arrays.asList(strlist);
java.util.List<Double> intList = new ArrayList<Double>();
for(String str : stringlist)
{
//converting and adding to double list
intList.add(Double.valueOf(str));
}
//Sorting is done here
Collections.sort(intList);
for(Double num : intList)
{
System.out.println(num);
}
}
}
公共类ConvertToIntSort
{
公共静态void main(字符串[]args)
{
字符串[]strlist={“-100000”、“0.100”、“2”、“3000.000”、“87.270”、“-80000”};
java.util.List stringlist=Arrays.asList(strlist);
java.util.List intList=new ArrayList();
用于(字符串str:stringlist)
{
//转换并添加到双重列表
intList.add(Double.valueOf(str));
}
//排序在这里完成
Collections.sort(intList);
for(双数值:intList)
{
系统输出打印项数(num);
}
}
}
您只需检查传入列表是否已排序。
将上一个值与当前值进行比较。如果上一个值大于当前值,则列表不会排序
示例代码:
WebElement prev=null;
boolean isSorted = true;
for (WebElement currentWebElement : list) {
if (prev == null) {
prev = currentWebElement;
continue;
} else {
if (Double.compare(Double.parseDouble(prev.getText().replaceAll(",", "")),
Double.parseDouble(currentWebElement .getText().replaceAll(",", ""))) > 0) {
isSorted = false;
break;
}
prev = currentWebElement;
}
}
番石榴不是一个排序算法!不管怎么说,您使用的是Java 8吗?使用集合排序。@SedrickJefferson-no。不是OP所期望的答案。值是唯一的吗?我在java 7上。好的,我看到我可以检查列表是否已排序,是否使用番石榴。对不起,如果我错了。我无法转换为整数,因为是负值。出现异常。例如,我得到了-100000,我尝试将这个值转换为Integer.parseInt(-100000);但由于“-”而导致异常,这是因为这里的not整数是一个解决方案:String s=“-100000”;s=s.replaceAll(“,”,“)//替换,替换。s=Double.parseDouble(s);这应该能把它修好。。这很有效。。非常感谢你对Sumit的帮助。
WebElement prev=null;
boolean isSorted = true;
for (WebElement currentWebElement : list) {
if (prev == null) {
prev = currentWebElement;
continue;
} else {
if (Double.compare(Double.parseDouble(prev.getText().replaceAll(",", "")),
Double.parseDouble(currentWebElement .getText().replaceAll(",", ""))) > 0) {
isSorted = false;
break;
}
prev = currentWebElement;
}
}