剑指offer 53.表示数值的字符串

剑指offer 53.表示数值的字符串

题目

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

思路

三种思路:

  1. 正则表达式,这里要注意转义符号的使用。
  2. 自动机,编译原理中的概念,已经忘了.
  3. 遍历,硬算,设几个标签量来记录符号等,然后ifelse结束.

代码

  public boolean isNumeric(char[] str) {
    String que=String.valueOf(str);
    return  que.matches("[\+-]?[0-9]*(\.[0-9]*)?([eE][\+-]?[0-9]+)?");
  }
原文地址:https://www.cnblogs.com/blogxjc/p/12422717.html