EncoreLaw
2016-06-25 07:30
采纳率: 46.2%
浏览 1.7k
已采纳

java基础知识,望大神指教!

public class Texttwo {
public void play(){
int[] arr=new int []{8,2,1,0,3};
int[] index=new int[]{2,0,3,2,4,0,1,3,2,3,3};
String tel="";

    for(int i:index){   
        tel+=arr[i];

    }
    System.out.print(tel);
}

}

在上面程序中
tel+=arr[i]这一句,为什么String可以接收int?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

11条回答 默认 最新

  • 梦旅人ゝ 2016-06-25 09:38
    已采纳

    字符串和数字直接相加,是把数字当成了字符串,这是JAVA的装箱机制,最终相当于字符串的连接。

    点赞 评论
  • beyondma 2016-06-25 07:33

    没看懂,你是指print函数为什么接受整形吗?这个函数有这个签名。

    点赞 评论
  • sinat_26761191 2016-06-25 07:34

    tel+=arr[i]----->tel=tel+arr[i]---------》tel=""+arr[i]---->数字和“”相加被转成字符串了,所以可以直接接受字符串了

    点赞 评论
  • loongshawn 2016-06-25 08:04

    重点在tel+=arr[i],需要把它还原为tel = tel + arr[i].

    点赞 评论
  • qq_18626157 2016-06-25 08:04

    在Java里面,整型

    点赞 评论
  • Green_lth 2016-06-25 08:20

    tel+=arr[i],这里的+号是字符串拼接符。

    点赞 评论
  • 墨笙弘一 2016-06-25 08:20
    • 连接两个字符串 tel = tel + arr[i]
    点赞 评论
  • 一汪清水 2016-06-25 09:30

    tel+=a[i]即tel=tel+a[i],+进行字符串拼接的本质是通过new StringBuild(tel).append(a[i])实现的。java在编译期就完成了上述代码的替换。了解本质多看下JAVA编译后class文件再反编译的源代码,希望解答了你的疑惑图片说明

    点赞 评论
  • _1_1_7_ 2016-06-25 10:47

    类似C++
    的操作符重载,其实没什么为什么,编译器怎么实现都可以,任性点的用减号减一个整形也是可以做的

    点赞 评论
  • Wikey丶 2016-06-26 03:37

    首先定义一个空字符串String tel="";然后如果有int类型,因为是由小字节类型转大字节类型,所以无需强转,只需要在int后面加一个""就可以转为String类型

    点赞 评论
  • GreenRookie 2016-06-26 11:22

    +=变成了字符串拼接了 所以得到的就会是String型

    点赞 评论

相关推荐 更多相似问题