Topic: 字符串与字符串数组的经典问题!!! |
Print this page |
1.字符串与字符串数组的经典问题!!! | Copy to clipboard |
Posted by: chenxiang0207 Posted on: 2005-04-17 13:19 public class StringArray{ private static void add(String str1, String str2){ str1 = str1 + str2; System.out.println("运算结果:"+str1); } private static void add(String[] sts1, String str2) { sts1[0] = sts1[0] + str2; System.out.println("运算结果:"+sts1[0]); } public static void main(String[] args) { String sa = "a", sb = "b"; String[] sts = new String[1]; sts[0] = "a"; System.out.println("原来的Sa:"+sa); add(sa, sb); System.out.println("进行add运算后的Sa:"+sa); System.out.println("原来的sts[0]:"+sts[0]); add(sts, sb); System.out.println("进行add运算后的sts[0]:"+sts[0]); } } 第一个ADD的运算结果是ab,可是在main函数里打印出"进行add运算后的Sa:"却是a,可是第二个ADD的运算结果跟main函数里打印出"进行add运算后的sts[0]:"都是ab,请问这是为什么?哪位兄弟帮我解决一下,谢谢啦!! |
2.Re:字符串与字符串数组的经典问题!!! [Re: chenxiang0207] | Copy to clipboard |
Posted by: chenxiang0207 Posted on: 2005-04-17 14:08 怎么没有一个人进来帮我解答一下呀? 找了很多资料就是不知道为什么呢? 哪位大侠快来给我弄一下! |
3.Re:字符串与字符串数组的经典问题!!! [Re: chenxiang0207] | Copy to clipboard |
Posted by: why Posted on: 2005-04-17 14:26 I don't know what those 很多资料 you have read (hopefully it's not just found) are, but this is a basic concept to know about Java: pass by value The add method has no side-effect to sa, but sts[0] would get a new value. |
4.Re:字符串与字符串数组的经典问题!!! [Re: chenxiang0207] | Copy to clipboard |
Posted by: chenxiang0207 Posted on: 2005-04-17 17:29 那结果我是经过调试的,怎么会错了? Sa没有变,但sts1[0]的确变了 就是不知道WHY? 哪位高手一定要帮帮我看看!!! |
5.Re:字符串与字符串数组的经典问题!!! [Re: chenxiang0207] | Copy to clipboard |
Posted by: VirusCamp Posted on: 2005-04-17 20:44 这是因为java是传值,而不是传引用的. 传进method的参数的值不会被改变. sa-->"a"在method里不会被改变 sts-->[]其中[0]-->"a",改变的不是sts,而是sts[0],sts是不会被改变的. |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |