我知道如何检查String是否为数字。但是,如何检查String是否为数字且String是否为科学计数法?
这是我尝试过的:我编写了一个算法,只是检查字符串是否包含“E”,但我不确定这是否足够。
我正在寻找像这样的方法实现:
public boolean isScientificNotation(String numberString) {
//show me the implementation
}
答案 0 :(得分:6)
您可以使用BigDecimal
。验证表示法格式本身是使用简单的contains
表达式
static boolean isScientificNotation(String numberString) {
// Validate number
try {
new BigDecimal(numberString);
} catch (NumberFormatException e) {
return false;
}
// Check for scientific notation
return numberString.toUpperCase().contains("E");
}
答案 1 :(得分:1)
试试这个:
if(containsE(str)) //call your method to check if "e" is present
{
try
{
Double.parseDouble(str);
return true;
}
catch(NumberFormatException e)
{
return false;
}
}
else
return false;
答案 2 :(得分:1)
private boolean isScientificNotation(String numberString) {
// Validate number
try {
new BigDecimal(numberString);
} catch (NumberFormatException e) {
return false;
}
// Check for scientific notation
return numberString.toUpperCase().contains("E") && numberString.charAt(1)=='.';
}
修改了一下。如果字符串是标准化的科学记数法,它应该有一个点/“。”在外面的地方,也有E / e的地方。