题目描述
验证给定的字符串是否为数字。
例如:
“0” => true
" 0.1 " => true
“abc” => false
“1 a” => false
“2e10” => true
说明: 我们有意将问题陈述地比较模糊。在实现代码之前,你应当事先思考所有可能的情况。
解题思路
这题算法上没难点,但是是真的烦!!!
最坑的就是你必须排除所有有效数字的情况
总结了几个比较容易忽视的情况:
首先记得去掉首尾的空白字符。
非有效数字的字符串:
. -. -.e10 5e e10 4e10.5 4e5e5
是有效数字的字符串:
+.8 -4.e10 -4.e-10 4.
代码实现
class Solution {
public boolean isNumber(String s) {
//s空
if(s==null || s.trim().length()==0){
return false;
}
s = s.trim();
int numOfPoints = 0, numOfE = 0;
for(int i=0;i<s.length();i++<