您的位置:首页 > 其它

Valid Number(LeetCode)

2016-05-09 16:39 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.
题目:判断一个string是否为有效的数字表达式。
思路:字符串中可能出现‘+’、‘-’、‘.‘、’E‘、’e‘、'0-9'
分情况讨论
(1)去除string首部和尾部的空格;
(2)输入+’、‘-’
(3)'0-9'
(4)‘.‘ 前有数字或后有数字
(5)’E‘、’e‘前必须有数字,后+’、‘-’、'0-9'

public static boolean isNumber(String s) {
s=s.trim();
int i=0;
int n=s.length();
if(i < n && (s.charAt(i) == '+'|| s.charAt(i)=='-'))
i++;
boolean numFlag=false;
while (i<n&&Character.isDigit(s.charAt(i))){
i++;
numFlag=true;
}
if(i < n && s.charAt(i) == '.'){
i++;
while (i<n&&Character.isDigit(s.charAt(i))){
i++;
numFlag=true;
}
}
if(numFlag && i < n && (s.charAt(i) == 'e'||s.charAt(i) == 'E')){
i++;
numFlag=false;
if(i < n && (s.charAt(i) == '+'|| s.charAt(i)=='-'))
i++;
while (i<n&&Character.isDigit(s.charAt(i))){
i++;
numFlag=true;
}
}
return numFlag&&i==n;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: