剑指offer 53.表示数值的字符串
题目
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
思路
三种思路:
- 正则表达式,这里要注意转义符号的使用。
- 自动机,编译原理中的概念,已经忘了.
- 遍历,硬算,设几个标签量来记录符号等,然后ifelse结束.
代码
public boolean isNumeric(char[] str) {
String que=String.valueOf(str);
return que.matches("[\+-]?[0-9]*(\.[0-9]*)?([eE][\+-]?[0-9]+)?");
}