日期:2014-05-20  浏览次数:20809 次

这种数值转字符串是什么道理?
我在网上看到三种数值转换成字符串的方法,请问第一种是什么原量?
public class Test
{
public static void main(String[] args)
{
int a = 6;
System.out.println(a+"");    //这种方法是什么道理?
System.out.println(String.valueOf(a));
System.out.println(((Integer)a).toString());
}
}

------解决方案--------------------
这个是利用java语言的特性的写法
任何对象和String相加时会先调用对象的toString()方法

相当于 Object.toString() + ""
------解决方案--------------------
 int 类型s+""就相当于s.toString();
------解决方案--------------------
错了  int是基本类型  没有  toString方法,应该是 int对应的类Integer的toString()方法
------解决方案--------------------

 System.out.println(a+a+"");    //这种方法是什么道理?
 System.out.println(a+""+a);     //这种方法是什么道理?
 System.out.println(""+a+a);    //这种方法是什么道理?

类似!
------解决方案--------------------
int会自动封装成包装类integer包装类,然后调用包装类的toString方法,完成字符串相加
------解决方案--------------------

public class Test2 {
  public static void main(String[] args) {
    int i = 5;
    String strI = i + "123";
  }
}

生成Test2.class文件后,运行javap -c Test2

1.调用String.valueOf方法,将i转换为String类型
2.调用StringBuilder."<init>"方法,将先前生成的String初始化到StringBuilder中(具体调用StringBuilder的哪个方法,我不知道)
3.调用String.append()方法,将字符串"123"添加进去,如果是空字符串(""),省略这步
4.调用StringBuilder.toString()方法,打印。
请参考以下连接
http://stackoverflow.com/questions/4105331/how-to-convert-from-int-to-string