Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.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 如何从web获取值并将其转换为整数_Java_Selenium - Fatal编程技术网

Java 如何从web获取值并将其转换为整数

Java 如何从web获取值并将其转换为整数,java,selenium,Java,Selenium,我想从网络中获得价值 例如:总金额:25000 并希望将此值转换为整数以继续比较步骤,但在打印Toat_Amt后,它显示为 java.lang.NumberFormatException:对于输入字符串:25000 这是我的密码: WebElement gt = driver.findElement(By.id("totAmt")); String total_Amt=gt.toString(); System.out.println("Total Amt:"+total_Amt); //int

我想从网络中获得价值 例如:总金额:25000 并希望将此值转换为整数以继续比较步骤,但在打印Toat_Amt后,它显示为

java.lang.NumberFormatException:对于输入字符串:25000

这是我的密码:

WebElement gt = driver.findElement(By.id("totAmt"));
String total_Amt=gt.toString();
System.out.println("Total Amt:"+total_Amt);
//int total_amt_val =Integer.parseInt(total_Amt);
System.out.println(total_amt_val);

尝试替换所有非数字符号:

WebElement gt = driver.findElement(By.id("totAmt"));
String total_Amt = gt.toString(); // "25,000"

// replace 'bad' symbols
String onlyNumbers = total_Amt.replaceAll("[^\\d]", "");  // "25000"

System.out.println("Total Amt: " + total_Amt);
int total_amt_val = Integer.parseInt(onlyNumbers); // 25000
System.out.println(total_amt_val);
\\d表示所有数字,[^\\d]表示所有非数字,如果您想保留一些其他符号,只需将它们添加到[]-例如,如果您也想保留点,请使用[\\d.]即可。

您可以使用

NumberFormat.getNumberInstanceLocale.US.Parse25000.intValue将返回25000

您可以尝试以下操作:

WebElement gt = driver.findElement(By.id("totAmt"));
String total_Amt = gt.toString(); // 25,000
total_Amt = total_Amt.replaceAll(",", ""); // removes all ',' -> 25000
int total_amt_val = Integer.parseInt(total_Amt); // 25000 as int already
System.out.println(total_amt_val); // 25000

您可以首先使用replaceAll方法替换所有逗号,然后直接解析它,如下所示。此外,还需要使用getText方法来检索元素文本

WebElement gt = driver.findElement(By.id("totAmt"));
//To be changed as gt.getText().
String total_Amt=gt.getText();      
System.out.println("Total Amt:"+total_Amt);
//Replace comma as empty and then you can normal parse the string to int
int total_amt_val =Integer.parseInt(total_Amt.replaceAll(",",""));
System.out.println(total_amt_val)
在这种情况下,如果您将总金额值作为总计:25000,则使用子字符串方法提取金额值,然后使用replaceAll方法将所有值替换为空


如果您正在处理价格问题,请使用以下方法:

public static void main(String[] args) throws Exception {

       WebElement gt = driver.findElement(By.id("totAmt"));
       String total_Amt = gt.getText(); // total_Amt=25,000.00

       BigDecimal bd_amt = parse(total_Amt , Locale.US); // Use this if the value is price
       int int_amount = parse(total_Amt , Locale.US).intValueExact(); // Use this if you want integer

       System.out.println("Price : " + bd_amt);
       System.out.println("Amount : " + int_amount);
}

private static BigDecimal parse(final String amount, final Locale locale) throws ParseException {
    final NumberFormat format = NumberFormat.getNumberInstance(locale);
    if (format instanceof DecimalFormat) {
        ((DecimalFormat) format).setParseBigDecimal(true);
    }
    return (BigDecimal) format.parse(amount.replaceAll("[^\\d.,]", ""));
}
样本输出:

 Price : 25000.00
 Amount : 25000
使用字符串total_Amt=gt.getText;并在此处发布总金额输出。同时发布html片段。
 Price : 25000.00
 Amount : 25000