我怎么知道String是否是科学记数法中的数字?

时间:2013-06-06 22:52:48

标签: java scientific-notation

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

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

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

public boolean isScientificNotation(String numberString) {

    //show me the implementation

}

3 个答案:

答案 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的地方。