上篇博客的第二题,我昨天看了康师傅的解法,当时觉得看懂了,但晚上全看春晚,没有及时的跟着敲出来,今天凭着对昨天的理解记忆,来敲出来,结果敲到下面这步,出现了问题
1 //实现数组的反转,将字符串中指定部分进行反转 2 //比如“abcdef",将其中的cde反转后,输出为abedcf 3 //方式二: 4 public String myReverse(String src,int start, int end) { 5 char tmp; 6 for (int i = start, j = end; i < j; i++, j--) { 7 tmp = src.charAt(i) ; 8 src.charAt(i) = src.charAt(j); 9 src.charAt(j) = tmp; 10 } 11 12 }
当时就懵了,怎么会出错呢?
看到这里的你也可以想想,是什么原因呢?
给你五分钟,赶紧想(原因最下面揭晓)
原因就是String是不可变的,你不能修改String里面的内容,这下对String的不可变性又加深了吧,哈哈哈哈