我刷Leetcode题目的时候,经常会遇到变量类型转化的问题,方法也有很多种,经常容易混淆。所以特地总结以下内容:
1,String转换为Integer
1,Integer类的静态方法valueof()
String str = "123";
Integer i =Integer.valueOf(str);
2,Integer.parseInt(String s)
String str = "123";
Integer i2 = Integer.parseInt(str);
2,Integer类型转换为String类型
1,Integer类的静态方法toString()
Integer a = 111;
String str = Integer.toString(a);
2,Integer类的成员方法toString()
Integer a = 111;
String str = a.toString();
3,String类的静态方法valueOf()
Integer a = 111;
String str = String.valueOf(a);
3,char类型转换为int
1,利用字符的ASCALL码值进行转化
a,由于字符1的Ascall码的值为49,当用字符类型的变量减去int类型的变量时,会自动用字符型的ASCII编码值去进行操作,因此返回的就是int型的1。
char c = '1';
int c1= c-48;
b,在ASCII编码中,字符1与字符0的差值等于数字1,所以这样就可以在不装箱拆箱的情况下完成转换。
char c = '1';
int c2=c-'0';
2,进行类型强转
char c = '1';
int c3=(int)c;
PS:当读者进行测试后,会发现c3的结果不是1,而是49。这是因为当我们将char类型强转为int型时,返回的是字符的ASCII编码值,而不是其本身。