有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何将列表计数与单个整数值进行比较?

我正在尝试匹配记录总数,但无法匹配,因为我的一个totalcount在列表类型变量中为strong,另一个存储在单个整数变量中

我的代码:

`Base.getdriver().get(Js_constants.DashboardURL);

  List<WebElement>  totaljobs = Base.getdriver().findElements(By.className(Js_constants.TopsJobsactualtotal));
  System.out.println(totaljobs.size()); //OUTPUT 30

   //Integer.parseInt(totaljobs); //THIS IS NOT WORKING..WHY?

  String Topjobscount = Base.getdriver().findElement(By.xpath(Js_constants.Topsjobscount)).getText();
  System.out.println(Topjobscount); //OUTPUT 30
  Integer.parseInt(Topjobscount); 



  //HERE IT IS NOT SUPPORTING CONDITION LIKE THIS.
  if(Topjobscount == (totaljobs.size()))

  {

      System.out.println("Jobs & Count are matching");
      Reporter.log("Jobs & Count are matching");

  }
  else
  {

      System.out.println("Jobs & Count are matching");
      Reporter.log("Jobs & Count are not matching");


  }


  }`

我正在使用selenium webdriver&;Java。我想比较两个变量计数,但问题是它不允许我将列表类型变量转换为整数


共 (3) 个答案

  1. # 1 楼答案

    Java is strictly a types language. That means following.

    You can not supply anything into a method, it has to be strictly in the same object hierarchy. It results a compile time error if trying to supply wrong type of value as a parameter.

    例如,在您的代码中List<WebElement> totaljobs明确表示对象的类型totaljobs是列表。 其中Integer.parseInt()中的参数类型为String。因此,您不能在需要字符串的地方提供列表类型的值。 相反,您可以通过将列表转换为字符串来传递列表的大小,如下所示

    String.valueOf(totaljobs.size());
    

    将返回列表大小的字符串表示形式

    但是,您可以通过调用Integer.parseInt(String.valueOf(totaljobs.size()));将此字符串值转换回整数

    But above does not make any sense as size() method of List, returns an integer value.

    Topjobscount is a String value which can not be compared to int value without converting it to integer.

    所以您可以通过将字符串转换为整数来更正(Topjobscount == (totaljobs.size()))。如下所示

    if (Integer.parseInt(Topjobscount) == totaljobs.size())
    

    希望这有帮助

  2. # 2 楼答案

    Integer.parseInt()文件指出:

    Returns: the integer value represented by the argument in decimal.

    Throws: NumberFormatException - if the string does not contain a parsable integer.

    所以您需要将返回的值保存到整数变量中并使用该变量

    int count = Integer.parseInt(Topjobscount);
    if(count == (totaljobs.size()))
    
  3. # 3 楼答案

    Topjobscountvarible是一个字符串,您试图将其与int值进行比较

    调用Integer.parseInt(Topjobscount)不会将您的string转换为int。必须将Integer.parseInt(Topjobscount)返回的值赋给int值,然后进行比较。 试试这个

    int x = Integer.parseInt(Topjobscount);
    if(x == (totaljobs.size()))
    

    记住抓住NumberFormatException