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?
字符串和数字直接相加,是把数字当成了字符串,这是JAVA的装箱机制,最终相当于字符串的连接。
没看懂,你是指print函数为什么接受整形吗?这个函数有这个签名。
tel+=arr[i]----->tel=tel+arr[i]---------》tel=""+arr[i]---->数字和“”相加被转成字符串了,所以可以直接接受字符串了
重点在tel+=arr[i],需要把它还原为tel = tel + arr[i].
在Java里面,整型
tel+=arr[i],这里的+号是字符串拼接符。
tel+=a[i]即tel=tel+a[i],+进行字符串拼接的本质是通过new StringBuild(tel).append(a[i])实现的。java在编译期就完成了上述代码的替换。了解本质多看下JAVA编译后class文件再反编译的源代码,希望解答了你的疑惑
类似C++
的操作符重载,其实没什么为什么,编译器怎么实现都可以,任性点的用减号减一个整形也是可以做的
首先定义一个空字符串String tel="";然后如果有int类型,因为是由小字节类型转大字节类型,所以无需强转,只需要在int后面加一个""就可以转为String类型
+=变成了字符串拼接了 所以得到的就会是String型