1、method_1(String s1,String s2)中虽然使用了s1.replace('a','k');但是返回的替换字符串没有进行存储操作,所以s1仍然是没有替换的状态-->java。验证方法1、System.out.println(s1);System.out.println(s1.replace('a','k'));验证方法2、s1=s1.replace('a','k');System.out.println(s1);
2、method_2(StringBuilder s1,StringBuilder s2)中s1.append();方法不同于s1.replace()方法,它会自动存入s1中,验证可以打印s1-->javahello; 在调试method_2函数时我也犯了一下迷糊,列出几种假设,均被一一推翻,直接dubug调试。恍然大悟。
总结:其实两个函数出现问题均相同,理清关系的问题,请看代码分析和图片分析[code]package t;
class te{
public static void main(String[] args) {
String s1 = "java";
String s2 = "hello";
method_1(s1,s2);
System.out.println(s1+"...."+s2); //java....hello
StringBuilder s11 = new StringBuilder("java");
StringBuilder s22 = new StringBuilder("hello");
method_2(s11,s22);
System.out.println(s11+"-----"+s22); //javahello-----hello
}
public static void method_1(String s1,String s2){
s1.replace('a','k');
|
-
a.png
(62.12 KB, 下载次数: 53)
关系描述
|