將字符串解析爲整數有兩種方法
方法一:
通常使用Integer.parseInt(String)方法將字符串解析爲整數。但如果字符串中包含有其它字符,該方法將不能正常工作。
String str ="123";
Integer.parseInt(str);//正常解析
String str1="123abc";
Integer.parseInt(str1);//NumberFormatException
String str2="123.235";
Integer.parseInt(str2);//NumberFormatException
方法二:
java.text.NumberFormat類中的方法能夠解析字符串中的部分數字字符,返回一個Number類實例:
public Number parse(String source) //從開始的數字字符開始解析,直到遇到非數字字符爲止,如果沒有能解析的字符該方法會拋出異常
public abstract Number parse(String source,ParsePosition parsePosition) //第二個參數指定解析的起始索引,如果沒有能解析的字符,該方法返回null
注:NumberFormat是抽象類,不能直接構造該類的對象,可以使用類中的靜態工廠方法:public static final NumberFormat getNumberInstance() 或public static final NumberFormat getInstance() 方法獲取實例。
NumberFormat nf = NumberFormat.getNumberInstance();
int num = 0;
String str ="123";
String str1="123abc";
String str2="123.235";
String str3="abc123";
try {
num = nf.parse(str).intValue();//正常解析 123
num = nf.parse(str1).intValue();//正常解析 123
num = nf.parse(str2).intValue();//正常解析 123
num = nf.parse(str3).intValue();//ParseException
num = nf.parse(str3,new ParsePosition(3)).intValue();//正常解析 123
} catch (ParseException e) {
}