将字符串解析为整数有两种方法
方法一:
通常使用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) {
}