劍指offer 第22題:表示數(shù)值的字符串

題目:請實現(xiàn)一個函數(shù)用來判斷字符串是否表示數(shù)值(包括整數(shù)和小數(shù))。例如,字符串“+100”、“5e2”、“-123”。

解題思路:表示數(shù)值的字符串的模式為A[.[B]][e|EC].[B][e|EC],其中A可能為以'+|-'開頭的整數(shù),B為整數(shù),C與A相同。在判斷一個字符串是否符合上述表達式的時候,首先從頭到尾掃描字符串,先判斷A,在遇到小數(shù)點以后,再開始判斷B,在碰到e或者E的時候,開始判斷C。

public class Numeric {
    int index = 0;
    public boolean isNumeric(char[] str){
        if(str==null) return false;
        boolean numermic = scanInteger(str,index);
        if(str[index]=='.'){
            index++;
            numermic = scanUnsigendInteger(str,index)||numermic;
        }
        if(str[index]=='e'||str[index]=='E'){
            index++;
            numermic = numermic&&scanInteger(str,index);
        }
        if(index==str.length) return numermic;
        else return false;
    }

    public boolean scanInteger(char[] str,int index){
        if(str[index]=='+'||str[index]=='-'){
            index++;
        }
        return scanUnsigendInteger(str ,index);
    }
    public boolean scanUnsigendInteger(char[] str,int index){
        int firstIndex = index;
        while(str[index]>='0'&&str[index]<='9')
            index++;
        return index>firstIndex;
    }
}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,040評論 0 2
  • 專業(yè)考題類型管理運行工作負責人一般作業(yè)考題內(nèi)容選項A選項B選項C選項D選項E選項F正確答案 變電單選GYSZ本規(guī)程...
    小白兔去釣魚閱讀 10,558評論 0 13
  • 前言 最先接觸編程的知識是在大學里面,大學里面學了一些基礎的知識,c語言,java語言,單片機的匯編語言等;大學畢...
    oceanfive閱讀 3,395評論 0 7
  • 題干 請實現(xiàn)一個函數(shù)用來判斷字符串是否表示數(shù)值(包括整數(shù)和小數(shù)),例如,字符串 +100、 5e2、 -123、 ...
    懶人成長閱讀 400評論 0 0
  • 當心靜如水的時候,你就會會被群山環(huán)繞,這連綿不斷的山,不正是那滿滿的高低起伏的情緒嘛,如若因為一些瑣事引起悲觀的思...
    SmithAndy閱讀 163評論 0 1

友情鏈接更多精彩內(nèi)容