黑马程序员技术交流社区

标题: replace问题 [打印本页]

作者: 来男.    时间: 2014-5-4 11:53
标题: replace问题
class Haha{
        public static void main(String args[]){

                String r = new String("itheima");

                System.out.println(r.replace('i','1'));    //1

                System.out.println(r);   //2
        }
}

想问个概念问题:String r...后建立了Itheima两个对象,经过1、2后他们各自的变化过程是怎样的?


作者: 轻语。    时间: 2014-5-4 12:48
本帖最后由 伍叶竹 于 2014-5-4 12:51 编辑

一点理解:
创建两个对象这一点相信你已经很清楚。那么,就简单了。
replace 方法返回值是新的字符串,所以打印的是:1the1ma
下面打印的是原来的r指向的串:itheima
作者: skill20    时间: 2014-5-4 12:53
String 特点:字符串一旦被初始化,就不可以被改变,存放在方法区中的常量池中。
作者: 雪碧拌米饭    时间: 2014-5-4 14:07
本帖最后由 雪碧拌米饭 于 2014-5-4 14:13 编辑

String.replace()的作用是返回一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串。经过System.out.println(r.replace('i','1'));    中replace("i","1")将itheima中所有的i替换成1,并返回一个新的字符串1the1ma,
但这个字符串并不覆盖原有的itheima字符串,所以原来的字符串r打印出来还是itheima,所以运行结果是
1the1ma
itheima



作者: 大恶魔先森~    时间: 2014-5-5 21:32
结果为:
1the1ma
itheima




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2