import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param str string字符串 
     * @return bool布尔型
     */
    public boolean isNumeric (String str) {
        str = str.trim();
        String patterStr = "^[+-]?\\d+(\\.\\d*)?([eE]{1}[+-]?\\d+)?";
	  //两个正则的唯一区别是下面正则代表“.2”这类以点开始的数,点前面可以没有数字
        String patterStr2 = "^[+-]?\\.\\d+([eE]{1}[+-]?\\d+)?";
	  //一条正则的写法
	  //String patterStr = "[+-]?(\\d+|\\d+\\.\\d*|\\.\\d+)([eE][+-]?\\d+)?";

        return Pattern.matches(patterStr, str) || Pattern.matches(patterStr2, str);
    }
}