表示数值的字符串

题目

代码

public class Solution {
    private int index=0;
    public boolean isNumeric(char[] str) {
        if(str==null||str.length<=0){
            return false;
        }
        boolean flag=scanInteger(str);//判断整数部分
        if(index<str.length&&str[index]=='.'){
            index++;
            flag=scanUnsignedInteger(str)||flag;//或是表示整数部分可能不存在
        }
        if(index<str.length&&(str[index]=='e'||str[index]=='E')){
            index++;
            flag=flag&&scanInteger(str);//指数部分前面必须有数
        }
        return flag&&(index==str.length);
    }
    public boolean scanInteger(char[] str){
        if(index<str.length&&(str[index]=='+'||str[index]=='-')){
            index++;
        }
        return scanUnsignedInteger(str);
    }
    public boolean scanUnsignedInteger(char[] str){
        int temp=index;
        while (index<str.length&&(str[index]>='0'&&str[index]<='9')){
            index++;
        }
        return index>temp;
    }
}
posted @ 2018-04-01 20:05  baixiaoshuai  阅读(104)  评论(0编辑  收藏  举报