1. 程式人生 > >java 字串判斷是否是float或者int型

java 字串判斷是否是float或者int型

   想做一個判斷某個字串是否是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");
        }