zoukankan      html  css  js  c++  java
  • 面试题20 : 表示数值的字符串


    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,

    字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

    class Solution01 {
        int label=0;
        public boolean isNumeric(char[] str) {
            if(str==null){
                return false;
            }
            boolean result=isInteger(str,label);
            if(label==str.length)
                return result;
            if(str[label]=='.'){
                label++;
                result = isUnsignedInteger(str,label) || result;
                if(label==str.length)
                    return result;
            }
            if(str[label]=='E' || str[label]=='e'){
                label++;
                result = isInteger(str, label) && result;
                if(label==str.length)
                    return result;
            }
            if(label==str.length)
                return true;
            return false;
        }
        
        /*是否是整数*/
        boolean isUnsignedInteger(char[] str,Integer i){
            Integer num=i;
            while(i<str.length && (str[i]>='0' && str[i]<='9')){
                i++;
            }
            label=i;
            return i>num;
        }
        
       /* 判断是否是以 + 或 - 起始的整数 */
        boolean isInteger(char[] str,Integer i){
            if(i<str.length && (str[i]=='+' || str[i]=='-'))
                i++;
            return isUnsignedInteger(str,i);
        }
    }
  • 相关阅读:
    blktrace分析IO
    Mac-配置SecureCRT
    Mac-安装itellij idea
    Mac-sublime text 3破解版
    Mac-item+zsh
    Mac-安装homebrew
    Mac-装机
    Mac-WIFI总是断网
    Git-ssh登录github
    Git-回滚操作
  • 原文地址:https://www.cnblogs.com/Allen-win/p/8733793.html
Copyright © 2011-2022 走看看