劍指Offer 表示數值的字串 java

2021-09-18 07:03:33 字數 825 閱讀 6754

請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100",「5e2」,"-123",「3.1416"和」-1e-16"都表示數值。 但是"12e",「1a3.14」,「1.2.3」,"±5"和"12e+4.3"都不是。

需要滿足一下規則(正規表示式,直接用理解困難)

1 e/e後面必須跟數字,且只能有乙個e/e;不能最後乙個

2 第一次出現的符號(+/-)要麼在開頭,要麼緊接在e/e後面,

第二次出現的符號(+/-)只能在e/e後面;

3 小數點只能出現一次,並且只能出現在e/e前面;

4 不能出現除了0~9,+/-,.,e/e以外的字元

1 如果小數點前面沒有數字自動補零。比如-.799相當於-0.799;

2 如果符號後面沒有數字自動補零。比如+e+相當於+0e+0;

public class solution  else if (str[index] == 'e' || str[index] == 'e')

numeric = i***ponential(str);

else

// 出現了異常字元

numeric = false;

} return numeric && index == str.length; }

// 掃瞄陣列,如果當前字元為數字,index++

private void scandigits(char str)

// 判斷是否為科學計數法表示的數值的結尾部分

private boolean i***ponential(char str)

}

劍指Offer 表示數值的字串

題目 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。基本思路 字串應滿足通式a b e ec 或者.b e ec 其中,a c表示有 或無 ...

表示數值的字串 劍指offer

這道題寫起來比較繁瑣,需要考慮 號是否出現在第乙個位置,是否出現一次,以e為分割前後是不是正確的格式,e前可以為浮點數或者整數,e後只能是整數。因此如果把函式分成三個子函式來寫就好多了,乙個函式判斷是不是整數,乙個判斷是不是浮點數,乙個判斷e前後是否合法。include include bool i...

劍指offer 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題考查對字串的程式設計能力,我們需要從不同型別的數值中分析規律,要全面考慮數值整數,小數,指...