public class Test {
public static void main(String[] args) {
String str = "sss"; 
str.replace("s", "d"); 
System.out.println(str);  str = str.replace("s", "g"); 
System.out.println(str);

str = str.replace("s", "a"); 
System.out.println(str);

        str = str.replace("s", "b"); 
System.out.println(str);

}
 
}
结果是sss,ggg,ggg,ggg
首先前两个我明白就是不明白第三个,不是新生了字符串赋予了str了吗为什么还是ggg

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【lhack】截止到2008-07-13 11:24:37的历史汇总数据(不包括此帖):
    发帖的总数量:3                        发帖的总分数:90                       每贴平均分数:30                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:3                        结贴的总分数:90                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!
      

  2.   

    str = str.replace("s", "g"); 
    在这一句的时候,str所指向的对象已经改变了--ggg.
    所以,以后的替换的字符串里已经没有s了,所以还是输出原对象ggg.