如何将具有十进制,负十进制的字符串解析为整数?

时间:2017-09-19 06:20:08

标签: java selenium

在for循环中我得到字符串值,如十进制,整数,负十进制值,我想将它们全部转换成一个if条件,

如何实现这个目标?

 for(WebElement rowElement:TotalRowCount)
        {
              List<WebElement> TotalColumnCount=rowElement.findElements(By.xpath("td/span"));
              int ColumnIndex=1;
              for(WebElement colElement:TotalColumnCount)
              {
                  String s=colElement.getText().replace("%", "");

                  if(!s.isEmpty()&&!s.equals("NA"))
                  {

                   System.out.println("Row "+RowIndex+" Column "+ColumnIndex+" Data "+s);

                  }
                  else{/*do nothing*/}
               }
              RowIndex=RowIndex+1;
         }

6 个答案:

答案 0 :(得分:1)

int intnum= Integer.parseInt("1234");

有关详细信息,请参阅Java Documentation

(如果您使用StringBuilder(或古代StringBuffer),则需要Integer.parseInt(myBuilderOrBuffer.toString()); instead).

答案 1 :(得分:1)

如果您需要小数,则可以使用BigDecimal

BigDecimal nm = new BigDecimal(s);
int required = nm.setScale(0, RoundingMode.DOWN).intValueExact();

答案 2 :(得分:1)

 for(WebElement rowElement:TotalRowCount)
        {
              List<WebElement> TotalColumnCount=rowElement.findElements(By.xpath("td/span"));
              int ColumnIndex=1;
              for(WebElement colElement:TotalColumnCount)
              {
                  String s=colElement.getText().replace("%", "");

                  if(!s.isEmpty()&&!s.equals("NA"))
                  {

                   System.out.println("Row "+RowIndex+" Column "+ColumnIndex+" Data "+s);
         int val = (int) Double.parseDouble(s); // ==> This is val in integer

                  }
                  else{/*do nothing*/}
               }
              RowIndex=RowIndex+1;
         }

答案 3 :(得分:0)

在上面声明。

int result = 0;

根据您的代码,

String s=colElement.getText().replace("%", "");
result = Integer.parseInt(s);

现在结果保存您需要检查的整数值。

答案 4 :(得分:0)

由于您的输入可能是十进制,整数,否则请尝试下面的代码以获得正确的舍入结果:

cd ~/work; myapp &> /dev/null &; cd -
-bash: syntax error near unexpected token `;'

答案 5 :(得分:0)

您可以通过以下方法首先检查收到的字符串是否为数字,并将该方法调用作为if语句中的条件。

public static boolean isNumeric(String s) {
        if (s.isEmpty())
            return false;
        try {
            double d = Double.parseDouble(s);
        }
        catch (NumberFormatException nfe) {
            return false;
        }
        return true;
    }

因此,for循环中的If条件应该类似于if(isNumeric(s)){...}。此外,要将这些值仅解析为整数,您可以按Math.floor(Double.parseDouble(s) + 0.5d)强制转换它们。我认为应该解决这个问题。