請實現乙個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+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為數值的整數部分,b為跟在小數點之後的小數部分,c為跟在e或者e之後的指數部分。其中,a部分可以沒有,比如小數.123代表0.123。如果乙個數沒有整數部分,那麼小數部分必須有。
思路一:對字串中的每個字元進行判斷分析:
思路二:使用正規表示式,對字串中的每個字元進行判斷分析?:[\\+\\-]?\\d*(\\.\\d+)?([ee][\\+\\-]?\\d+)?
public
class
isnumeric_32
;char
str =
; system.out.
println
(isnumeric
(str));
}public
static
boolean
isnumeric
(char
str)
//第二次出現,必須是e或者e之後
if(sign && str[i -1]
!='e'
&& str[i -1]
!='e'
) sign =
true;}
else
if(str[i]
=='.'
)else
if(str[i]
=='e'
|| str[i]
=='e'
)else
if(str[i]
>
'9'|| str[i]
<
'0')
return
false;}
return
true;}
public
static
boolean
isnumeric
(char
str)
}
劍指offer之陣列中重複的數
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。public class solution a numbers i ...
劍指offer之 陣列中重複的數字
在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。暴力解法,遍歷,發現重複即返回true和重複數字 hash,由於數字...
(Java)劍指offer之陣列中重複的數
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。引數說明 numbers 輸入的整數陣列 length 陣...