1.java空字符:String s=""; 在前在后的顺序为什么会影响结果的顺序?
2.代码如下:
public class Null {
public static void main (String [] args){
String s="";
for(char i='a';i<'d';i++){
s=s+i;//输出结果:abc
//s=i+s;//输出的结果:cba
}
System.out.println(s);
}
}
3.如上图所示为什么空字符s放在表达式前后,输出的结果相反?为什么空字符会有这样的作用?原理和机制是什么?
s=s+i //是把i添加至s后面 自然就是abc
而s=i+s//是把s添加到i后面再赋给s 自然就是 cba
第一个问题,空字符串跟数字 0 的作用类似,代表没有内容。
第二个问题,放置的顺序影响字符串的拼接顺序,所以就不难理解最终输出的结果了。
你定义的s是字符串,就像一条链子,每次吧i放在前面或者放在后面,到最后自己也是从头来读这条链
运行过程:
第1次 i=a的时候,s=i+s; s="a"+""="a";
第2次i=b的时候,s=i+s; s="b"+"a"="ba";
第3次i=c的时候,s=i+s; s="c"+"ba"="cba";
同理可得,s=s+i;的顺序与之输出结果相反。