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

新手求教 字符串和数字相加问题
Java code

public class Test{
  public static void main(String[] args){
    long[] a1={1,2,4};
    System.out.print(a1[0] + a1[1] +a1[2] +" ");
    System.out.println(" " + a1[0] +a1[1] +a1[2]);
  }
}



为什么编译后的结果是:7 124


------解决方案--------------------
转换成字符串的一种方式

System.out.print((new StringBuilder(String.valueOf(a1[0] + a1[1] + a1[2]))).append(" ").toString());
System.out.println((new StringBuilder(" ")).append(a1[0]).append(a1[1]).append(a1[2]).toString());

------解决方案--------------------
这个挺简单的,朋友,看看 (1) System.out.print(a1[0] + a1[1] +a1[2] +" ");的结果是:7
(2) System.out.println(" " + a1[0] +a1[1] +a1[2]);的结果是124

 原因是如果你的数组是整形数据,也就是可以使用+做加法,而对于“”的转换,就是转换成一种字符串,字符串中的+是连接字符串的作用,明白了这个后,你就要看看你的运算是先做加法还是先转换为字符串,像(1)中的,你看看它是先做整形数字的加法,最后在强制转换为字符串,“”的作用其实跟toString()作用一样,(2)中的是先强制转换为字符串,这样连后面的整形也被强制装换为字符串类型了,+在字符串中只能做连接字符!如果还有什么不懂的,可以再跟你说说~~