leetcode 65:Valid Number 使用字符串匹配的细致分析
来源:互联网 发布:白凡泄露天机知乎 编辑:程序博客网 时间:2024/06/05 10:05
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.
题目分析:
判断一个字符串是不是数字:
1.首先考虑字符串的首尾可以是空格
2.其次考虑到字符串可以为正为负
3.考虑到有正常表示和科学计数法表示两种形式
4.正常表示,主要考虑有小数点,小数点前面可以有数,后面可以有数
5.科学技术法,中间是e,左边是正常数,右边是整数。
考虑到以上的条件,采用字符串匹配就可以解决此问题
源代码如下:
public static boolean isNumber(String s) { if(s.length()==0) return false; /***考虑到只有'.',和' '情况*/ String ss=s.replaceAll(" ","").replaceAll("\\.", "").replaceAll("\\+", "").replaceAll("\\-", ""); if(ss.length()==0) return false; /**考虑两种情况,一种是正常表示,一种是科学计数 * 非科学计数,考虑到1.前后可能有空格 2.考虑到可能包括小数点,小数点前面,后面都可能包括数字(但是不能只有小数点)3.数字的最前方可以有’+‘和‘-’表示正负 * 科学计数,前半部分相当于正常数,不过这里为了确保不是只有小数点,分为小数点前面必须有数,和小数点后面必须有数。科学计数后面的数必须是正负整数 * */ String regex="^(\\s+)?(\\-|\\+)?(\\d+)?(\\.)?(\\d+)?(\\s+)?$|^(\\s+)?(\\-|\\+)?(\\d+)(\\.)?(\\d+)?e(\\-|\\+)?(\\d+)(\\s+)?$|^(\\s+)?(\\-|\\+)?(\\.)?(\\d+)e(\\-|\\+)?(\\d+)(\\s+)?$"; return s.matches(regex); }
0 0
- leetcode 65:Valid Number 使用字符串匹配的细致分析
- [leetcode] 【字符串】 65. Valid Number
- leetcode ||65、 Valid Number
- LeetCode #65 Valid Number
- leetcode 65: Valid Number
- Leetcode#65||Valid Number
- leetcode|Valid Number(65)
- leetcode-65-Valid Number
- LeetCode 65 - Valid Number
- LeetCode 65 Valid Number
- Leetcode 65 Valid Number
- leetcode-65 valid number
- LeetCode 65 Valid Number
- leetcode 65 Valid Number
- Leetcode 65:Valid Number
- [LeetCode] Valid Number 使用有限状态机
- leetcode:字符串之Valid Palindrome && Palindrome Number
- leetcode 218. The Skyline Problem 使用PriorityQueue的java实现 以及细致分析
- PAT-PAT (Advanced Level) Practise 1012 The Best Rank (25) (简单模拟)【二星级】
- HDOJ 2540 遮挡判断(数学)
- mongodb 性能测试
- lightoj 1275 - Internet Service Providers 【求导】
- 1008 Elevator
- leetcode 65:Valid Number 使用字符串匹配的细致分析
- leetcode-Implement Queue using Stacks
- 1009 product of Ploynomials
- 【面试题】:兄弟字符串
- 拓扑排序
- Swift中的!和?
- 软件开发中设计为什么应该只有一个所有人?
- NJUPT-数据结构与算法分析 素数判定和生成
- javascript(六)正则表达式