劍指53 表示數值的字串

2022-06-08 03:06:12 字數 1092 閱讀 3390

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

思路1:呼叫庫函式

。通過呼叫double類的轉換成double型別的方法,判斷轉換的過程當中是否丟擲異常即可。

用double.parsedouble()是把字串變成double型別。

如果要變成int,則用integer.parseint()

思路2:模擬法。可以從正面考慮也可以從反面考慮,具體見**。難點在於歸納所有的正確情況或者錯誤情況。

思路3:使用正規表示式。

public

class

solution

catch

(exception e)

return

true

; }

}

public

class

solution

else

if (str[i] == '+' || str[i] == '-')

else

if (str[i] == '.')

else

if (str[i] < '0' || str[i] > '9')

}return

true

; }

}

public

class

solution else

if (str[i] == '.' && !dotflag && !eflag)else

if ((str[i] == 'e' || str[i] == 'e') && !eflag &&numflag)else

if ((str[i] == '+' || str[i] == '-') && (i == 0 || str[i-1] == 'e' || str[i-1] == 'e'))

else

}return

numflag;

}}

mark

劍指53題 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。傳入的引數是乙個字元數值str,如果直接使用,需要逐個檢查陣列的元素,分類討論是否符合數值格式。...

劍指offer 53 表示數值的字串

請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。本題的主要解題思路如下 首先判斷字串是否為空,或者首元素是否為 若是是則直接返回false 否...

劍指offer 53 表示數值的字串

題目描述 請實現乙個函式用來判斷字串是否表示數值 包括整數和小數 例如,字串 100 5e2 123 3.1416 和 1e 16 都表示數值。但是 12e 1a3.14 1.2.3 5 和 12e 4.3 都不是。輸出描述 true false 在數值之前可能有乙個表示正負的 或者 接下來是若干個...