本帖最后由 垂天云 于 2013-9-8 16:46 编辑
字符串对象一旦创建,就不会被改变,存在于堆内存中。
重新赋值是把新的字符串对象的地址值赋给了引用。
参考反转代码:
- //将字符串反转。
- /*
- 思路:
- 1,将字符串变成数组。
- 2,对数组反转。
- 3,将数组变成字符串。
- */
- class StringTest
- {
- public static void sop(String str)
- {
- System.out.println(str);
- }
- public static void main(String[] args)
- {
- String s = "adjajlka";</P>
- sop("("+s+")");
- sop("("+reverseString(s)+")");
- }
- public static String reverseString(String s,int start,int end)
- {
- //字符串变数组。
- char[] chs = s.toCharArray();
- //反转数组。
- reverse(chs,start,end);
- //将数组变成字符串。
- return new String(chs);
- }
- public static String reverseString(String s)
- {
- return reverseString(s,0,s.length());
- }
- private static void reverse(char[] arr,int x,int y)
- {
- for(int start=x,end=y-1; start<end ; start++,end--)
- {
- swap(arr,start,end);
- }
- }
- private static void swap(char[] arr,int x,int y)
- {
- char temp = arr[x];
- arr[x] = arr[y];
- arr[y] = temp;
- }
- }
复制代码 |