我知道如何检查字符串是否为数字。但是如何检查字符串是否为数字且字符串是否为科学计数法?
这是我尝试过的:我编写了一个算法来简单地检查字符串是否包含“E”,但我不确定这是否足够。
我正在寻找这样的方法实现:
public boolean isScientificNotation(String numberString) {
//show me the implementation
}
我知道如何检查字符串是否为数字。但是如何检查字符串是否为数字且字符串是否为科学计数法?
这是我尝试过的:我编写了一个算法来简单地检查字符串是否包含“E”,但我不确定这是否足够。
我正在寻找这样的方法实现:
public boolean isScientificNotation(String numberString) {
//show me the implementation
}
你可以使用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");
}
尝试这个:
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;
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)=='.' || numberString.charAt(2)=='.');
}
稍作修改。如果字符串是规范化的科学记数法,它应该有一个点/“。” 排在第二位,并且在某处也有 E/e。