字符串和數字之間的轉化是我們在項目中必然要碰到的問題,因為我們從用戶界面取得的變量的值肯 定是字符串。
所以,我們在項目中經常要做的事情就是:第一,需要對用戶的輸入進行校驗,以判斷用戶的輸入是 否是一個數字;第二,如果是的話,我們則需要進一步把它轉化為數字,以方便我們進行計算。
在Java語言中,我們要判斷一個字符串是否是數字,基本上有兩種方法,第一是直接進行轉化,如果 有Exception拋出,則該字符串非我們所需要的數字。如下面就是一段判定一個字符串是否為整型數字的 代碼:
public static boolean isInt(String str)
{
try
{
Integer.parseInt(str);
return true;
}
catch(Exception e)
{
return false;
}
}
類似的,我要判斷一個字符串是否為float、double和boolean等,都可以使用這樣的方法來判斷。
第二種方法是通過正則表達式來進行判斷,在這裡就不再給出例子。
總而言之,這兩種方法都需要我們給出代碼來進行判斷。
在Groovy語言中,系統就有API來幫助我們直接做這件事情,相當的簡單。如,如果我們需要判斷一 個字符串是否為int型,則只需要寫如下的代碼:
def num = '23'
println num.isInteger()
運行結果為:
true
如果是如下的代碼:
def num1 = '2.3'
println num1.isInteger()
則運行結果為:
false
類似的方法還有:isDouble()、isFloat()、isLong()、isNumber()、isBigDecimal()、 isBigInteger()等。
判斷完了以後,如果該字符串是我們所需要的數字類型,則我們接下來需要將它們轉化成相應的數字 類型。
例如,我們如果需要把一個字符串轉化為整型數字的話,就需要些如下的代碼:
int num = Integer.parseInt("12");
對於這樣的代碼,Groovy語言也進行了進一步的簡化:
def num = '23'
println num.toInteger()
是不是更簡單了?
類似的方法還有:toBigDecimal()、toBigInteger()、toBoolean()、toDouble()、toFloat()等等。