1. 程式人生 > >java判斷字串是否可以轉為數字

java判斷字串是否可以轉為數字

java運算中,常涉及將String 型的字串轉為int 型數字的情況。

哪些字串可以轉為數字,哪些不可以呢,不能總以Integer.parseInt() 是否丟擲異常來判斷。

剛好碰到了轉換情況,就總結了下,分享出來。

定義方法簽名

/**
* 檢視一個字串是否可以轉換為數字
* @param str 字串
* @return true 可以; false 不可以
*/
public static boolean isStr2Num(String str) { 

}

方法體該如何實現呢?兩種方式

方法1  Integer.parseInt 轉換

		try {
			Integer.parseInt(str);
			return true;
		} catch (NumberFormatException e) {
			return false;
		}

方法2  正則表示式

		
		Pattern pattern = Pattern.compile("^[0-9]*$");
		Matcher matcher = pattern.matcher(str);
		return matcher.matches();

Integer 還有一個靜態方法valueOf(String s),檢視原始碼

public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}

valueOf(String s) 也還是先通過parseInt() 先將字串轉換為數字,然後再轉換為Integer物件的

而 parseInt(String s) 返回的是int 型變數,節省了堆記憶體的開銷

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);
}

所以,這裡的判斷使用parseInt 就可以了。