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

其实我很讨厌做这种题目,因为要分析很多种情况,而人又是懒得思考的动物,所以对待这种题目尤为讨厌,思考的具体过程如下:

第一个数字可以是+-和数组
只能包含+- 数字 e .这类的字符 并且e和.只能包含一次
E的后面只能为整数,前面可以为小数
.的前后都只能为整数
+001应该不算整数

首先判断是否包含.和e
1.如果同时包含 则返回false
2.如果仅含有.,.的前后都只能为整数,并且只能包含1个.
3.如果仅含有e,E的后面只能为整数,前面可以为小数,并且只能包含一个e
4.如果都不包含,则全体数字应该为整数才对

判断整数:
1.第一个字符可以是+- 1-9的数组,否则返回false
2.后面的字符必须是0-9之间的数字,否则返回fasle
判断小数:
1.首先判断是否包含.,如果不办好,使用上述逻辑即可
2.如果包含,大于1个则返回fasle
3.等于1个,则应该判断小数前后的样子,.之前应该使用上述相同的逻辑,.之后应该使用另外一段逻辑
这种题目套路太多了,最讨厌做这种题目了。

public class Solution {

     public static  int countC(char[] str, char c, int s, int e){
        int count = 0;
        int index = -1;
        for(int i=s; i<= e;i++){
            if(c=='e'){
                if(str[i] == 'e'||str[i] == 'E'){
                    count++;
                    index = index*i;
                }
            }else{
                if(str[i] == c){
                    count++;
                    index = index*i;
                }
            }


        }
        if(count == 0)
            return count;
        if(count > 1)
            return count;
        else
            return index;
    }

    public static boolean isZhengShu(char[] str, int start, int end){
        if(end < start)return false;
        for(int i=start; i<= end; i++){
            if(i==start){
                if(str[i] == '+' || str[i] == '-' || (str[i] <= '9'&&str[i] >= '1'))