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

package com.java.jie;

public class test2 {


    public static void main(String [] args)
    {


    }

    public boolean isNumeric(char[] str) {

        boolean sign=false,decimal=false,hasE=false;

       for (int i=0;i<str.length;i++)
       {
           if (str[i]=='E'||str[i]=='e')
           {
               if(i==str.length-1) return  false;
               if(hasE) return  false;
               hasE=true;
           }else if (str[i]=='+'||str[i]=='-')
           {
               if(sign&&str[i-1]!='e'&&str[i-1]!='E') return false;

               if(!sign&&i>0&&str[i-1]!='e'&&str[i-1]!='E') return false;
               sign=true;
           }
           else if (str[i]=='.')
           {
               if(hasE||decimal) return  false;
               decimal=true;
           }
           else if (str[i]>'9'||str[i]<'0')
               return  false;


       }

                        return  true;
    }

}

猜你喜欢

转载自blog.csdn.net/qq_42039996/article/details/84714610