在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;
}
答案 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)
强制转换它们。我认为应该解决这个问题。