Java 如何从web获取值并将其转换为整数
我想从网络中获得价值 例如:总金额:25000 并希望将此值转换为整数以继续比较步骤,但在打印Toat_Amt后,它显示为 java.lang.NumberFormatException:对于输入字符串:25000 这是我的密码: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
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