注:题目及AC代码参考自牛客网
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100",“5e2”,"-123",“3.1416"和”-1E-16"都表示数值。 但是"12e",“1a3.14”,“1.2.3”,"±5"和"12e+4.3"都不是。
AC代码
利用 java 里面的正则表达式匹配可以很容易的写出来
public class Solution {
public boolean isNumeric(char[] str) {
String s=String.valueOf(str);
/*
1. X? X,一次或一次也没有
2. X* X,零次或多次
3. java 正则表达式中 . 表示任何字符。若要匹配 . 要用转义 \\.
4. X+ X,一次或多次
*/
return s.matches("[+-]?[0-9]*(\\.[0-9]*)?([eE][+-]?[0-9]+)?");
}
}