Java中的字符,字符串,数字之间的转换
1、string 和int之间的转换
string转换成int :
Integer.valueOf(str)
Integer.PaseInt(str)
int转换成string :
String.valueOf(int)
2、char和int之间的转换
首先将char转换成string,再调用Integer.paseInt(str)
或者Integer.valueof(ch)
Integer.valueof,参数可为char,返回的是Integer对象,
Integer.paseInt,参数为字符串返回的是int
同时回顾"==",hashcode(),equals()
==是比较两个对象在JVM中的地址,即是比较是不是同一个对象。
默认情况下,Object中的hashCode() 返回对象的32位JVM内存地址。
也就是说如果对象不重写该方法,则返回相应对象的32为JVM内存地址。
String类中的equals首先比较地址,如果是同一个对象的引用,可知对象相等,返回true。
若果不是同一个对象,equals方法挨个比较两个字符串对象内的字符,只有完全相等才返回true,否则返回false。
另外,两个对象hashcode()相等,equals()不一定相等
3、实例
public class Main {
public static void main(String[] args) {
int money = 123;
String str = "123";
char ch1 = '4',ch2 ='5';
String str1 = String.valueOf(ch1);
System.out.println(Integer.valueOf(str)); //123
System.out.println(money ==Integer.valueOf(str)); //true
System.out.println(String.valueOf(money)); //123
System.out.println(str == String.valueOf(money)); //false 因为不是同一个对象
System.out.println(str.hashCode()==String.valueOf(money).hashCode()); //true
System.out.println(String.valueOf(money).equals(str)); //true
System.out.println(Integer.parseInt(str1)); //4
System.out.println(Integer.parseInt(str) == Integer.valueOf(str)); //true
System.out.println(Integer.valueOf(ch1)); //52
//System.out.println(Integer.parseInt(ch1)); 报错,参数为字符串
System.out.println(Integer.valueOf(ch1)); //52 char 类型是一个单一的 16 位 Unicode 字符
System.out.println(Integer.valueOf(ch2)); //53
}
}