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就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM