java 字串判斷是否是float或者int型
阿新 • • 發佈:2019-02-07
想做一個判斷某個字串是否是float型或者是int型
String sf = "12000";
if(sf.indexOf(String.valueOf("\\.")) == -1){
out.println("float");
}else{
out.println("int");
}
後面發現這樣寫是有錯誤的,這個問題看似很簡單,其實還是比較複雜的,首先你需要明確認定什麼樣的數是float。有小數點就是float? 那 hello.123呢,123...68,.567呢?
如果要考慮這些特殊情況,基本的邏輯是這樣的:
首先:
然後:NumberUtils.isNumber(aString); //用此函式判斷字串是否為數字組成。
查詢小數點的個數和位置
當小數點個數為1且不在字串首部時,可以認為是float數。
當然,在這個問題可能不需要考慮這些情況,實際情況實際出發:更正後的程式碼如下:
String sf = "12000";
if(sf.indexOf('.') == -1){ //查不到字元'.',返回-1。另外注意是單引號。
System.out.println("int");
}
else{
System.out.println("float");
}