interger.parseint(x)和(int)浅析

看如下代码。

class test02
{
public static void main(String[] args)
{
char  s2='a';
String s1="12";
double x=Double.parseDouble(s1);
int y=(int)s2;//Integer.parseInt(s2);
System.out.println(x+y);
}
}

结果是109.0
如果使用Integer.parseInt(s2);
却会报错

但是下面的代码
class test02
{
public static void main(String[] args)
{
String s1="0.5",s2="12";
double x=Double.parseDouble(s1);
int y=Integer.parseInt(s2);//(int)s2;
System.out.println(x+y);
}
}
输出结果是12.5 使用(int)就会报错这是为什么呢


首先我们来看看parseint()的参数是怎么定义的

static int parseInt(String s) 
          将字符串参数作为有符号的十进制整数进行分析。 
static int parseInt(String s, int radix) 
          使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

所以chars是字符型不能够用parseint()方法。

然而大家不是问(int)x怎么可以把一个不是本身就不是Int的数据强制转为Int呢,在java中char是可以强制转为int的,转过来是ASCII   比如a就是97

而第二个本来就是string所以直接interger.parseint成int就好了

原文地址:https://www.cnblogs.com/zhuzihan/p/8993768.html