Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为整数后的java值排序列表_Java_Sorting_Selenium_Selenium Webdriver - Fatal编程技术网

将字符串转换为整数后的java值排序列表

将字符串转换为整数后的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 我是否要按排序顺序检查这些值?为此,我想我应该转换成整

我正在做一些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

我是否要按排序顺序检查这些值?为此,我想我应该转换成整数,然后使用某种排序方法进行检查。为此,我尝试将值转换为整数列表,然后使用一些排序算法(如Guava)检查排序。因为消极的价值观,我很难做到这一点

是否有任何方法可以检查上述问题的排序顺序以及值的顺序

提前谢谢

  • 创建2份数据副本
  • 将第一个转换为整数并对其排序
  • 将第二个值转换为整数并保留它
  • 检查两个列表是否相等,如果相等,则对列表进行排序

  • 请使用另一个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;
    
            }
    
        }