方法:正则匹配
我这个能通过100%的样例!!

public class Solution {
    public boolean isNumeric (String str) {
        return str.matches("[+-]?((\\d+(\\.\\d+)?)|(\\.\\d+))([Ee][+-]?\\d+)?"); //一行搞定!!
    }
}

ps:比较死板的规则可以用正则化表达式,如果过于复杂就要写if else for的语句了

正则表达式专题总结:

正则表达式:
[] 表示并列选其一;() 表示同时全都要;(下面三个可修饰这两种括号)
? 表示0次/1次
+表示1次-多次
*表示0次-多次
. 匹配除换行符 \n 之外的任何单字符。要匹配 . 请使用 \\.
| 或
\\d 表示[0-9], 需要字母直接写d表示'd';
\\w 匹配字母、数字、下划线。等价于 [A-Za-z0-9_]
\\s 是匹配所有空白符,相当于[\r \t \n \f ]。
标点符号如:+ - * / . 等都要反斜杠\\来转义
^表示开头 方括号里 ^ 表示"非"
$表示结尾