2

我知道如何检查字符串是否为数字。但是如何检查字符串是否为数字且字符串是否为科学计数法?

这是我尝试过的:我编写了一个算法来简单地检查字符串是否包含“E”,但我不确定这是否足够。

我正在寻找这样的方法实现:

public boolean isScientificNotation(String numberString) {

    //show me the implementation

}
4

3 回答 3

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");   
}
于 2013-06-06T23:10:09.673 回答
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;
于 2013-06-06T23:07:58.893 回答
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)=='.' || numberString.charAt(2)=='.');   
}

稍作修改。如果字符串是规范化的科学记数法,它应该有一个点/“。” 排在第二位,并且在某处也有 E/e。

于 2018-06-12T09:21:37.043 回答