您的位置:首页 > 其它

【LeetCode】- Valid Number(有效数字)

2014-08-27 15:08 344 查看
[ 问题: ]

Validate if a given string is numeric. 判断给定的字符串是否是数值

Some examples:

"0" => true

" 0.1 " => true

"abc" => false

"1 a" => false

"2e10" => true

Note: It is intended for the problem statement to be ambiguous. You should gather all requirements up front before implementing one.

[ 解法: ]

public class Solution {
	
    public static boolean isNumber(String s) {
        try {  
        	s = s.toLowerCase();  
            Double.parseDouble(s);  
        }  
        catch (Exception e) {  
            return false;  
        }          
        return s.charAt(s.length() -1) != 'f' && s.charAt(s.length() - 1) != 'd';
    }
}


注意:s不能以'f'或'd'结尾, 因为如果以它们结尾时,使用Double转换不会报错,

但是类似:10.1f, 20.1d 按照题意并不能算作有效数值,所以我们不能放过这些“漏网之鱼”。

[ 拓展: ]

1.float:单精度浮点数

声明为float类型的浮点数时,要在结尾加F或f。

float f1 = 11.11F; // 正的浮点数

float f2 = -17.15f; // 负的浮点数

2.double:双精度浮点数

声明为double类型的浮点数时,可在结尾加D或d。当然也可不加,因为浮点类型默认的类型是double。

double d1 = 11.11223D; // 正的浮点数

double d2 = 11.11333d; // 正的浮点数

double d3 = -17.15555; // 负的浮点数

** 这里建议在double数据类型的数后面加上D或d,以便能够和单精度浮点数区分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: