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'
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; }
相关文章推荐
- VS中MD/MT的设置
- Yii2.0 RESTful风格的Controller与ActiveController
- c++模板类成员的声明和定义
- paper 66: MATLAB函数—disp的使用
- goLang 如何进行调试操作?
- 大搬家 bestcoder
- H5--实现“扫描指纹”进入下一页效果
- 广播和多播
- 盘点:全球十大化妆品集团旗下子品牌分类及档次
- 混日子
- NYOJ 767 因子和
- iWMS PHP + AJAX 在线仓储管理系统
- 【C语言】矩阵转置
- SVM多类识别
- 阶段冲刺5
- StringUtils.isNotBlank("stringstr")
- iOS性能优化:Instruments使用实战(转)
- Oracle 如何修改列的数据类型
- 全文索引----solr服务器更新增量索引
- C#时间格式化