請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+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:使用正規表示式。
publicclass
solution
catch
(exception e)
return
true
; }
}
publicclass
solution
else
if (str[i] == '+' || str[i] == '-')
else
if (str[i] == '.')
else
if (str[i] < '0' || str[i] > '9')
}return
true
; }
}
publicclass
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 在數值之前可能有乙個表示正負的 或者 接下來是若干個...