牛客网

题目描述

  1. true
  2. "+100"
  3. "5e2"
  4. "-123"
  5. "3.1416"
  6. "-1E-16"
  1. false
  2. "12e"
  3. "1a3.14"
  4. "1.2.3"
  5. "+-5"
  6. "12e+4.3"

解题思路

使用正则表达式进行匹配。

  1. [] : 字符集合
  2. () : 分组
  3. ? : 重复 0 ~ 1 次
  4. + : 重复 1 ~ n 次
  5. * : 重复 0 ~ n 次
  6. . : 任意字符
  7. \\. : 转义后的 .
  8. \\d : 数字
  1. public boolean isNumeric (String str) {
  2. if (str == null || str.length() == 0)
  3. return false;
  4. return new String(str).matches("[+-]?\\d*(\\.\\d+)?([eE][+-]?\\d+)?");
  5. }