Great!
But could you explain why the following modification:
static void swap(StringBuffer firstStringBuffer, StringBuffer
secondStringBuffer) {
firstStringBuffer=secondStringBuffer; //MODIFICATION
StringBuffer temporaryStringBuffer = new StringBuffer();
temporaryStringBuffer.append(firstStringBuffer);
firstStringBuffer.replace(0, secondStringBuffer.length(),
secondStringBuffer.toString());
secondStringBuffer.replace(0, temporaryStringBuffer.length(),
temporaryStringBuffer.toString());
}
don't influence the result and change it into:
Before swap - firstString = aaa secondString = bbb
After swap - firstString = bbb secondString = bbb
(it's still:
Before swap - firstString = aaa secondString = bbb
After swap - firstString = aaa secondString = bbb
BUILD SUCCESSFUL (total time: 0 seconds)
)
-----Original Message-----
From: [email protected]
[mailto:[EMAIL PROTECTED] On Behalf Of miga
Sent: Friday, September 05, 2008 1:43 PM
To: Free Java Programming Online Training Course By Sang Shin
Subject: [java programming] Re: Passing parameters by reference question
On Sep 5, 1:25 pm, "Krupinski Norbert"
<[EMAIL PROTECTED]> wrote:
> Verson with StringBuffer doesn't work either:
>
> public class smiec {
>
> static StringBuffer a =new StringBuffer ("aaa"); static StringBuffer b
> = new StringBuffer ("bbb");
>
> static void swap(StringBuffer x, StringBuffer y){ String temp =
> x.toString(); x =new StringBuffer ("jj"); y = null;
>
> }
>
> public static void main(String args[]) {
>
> System.out.println("Before swap "
> + "a = " + a
> + " b = " + b);
> swap(a, b);
> System.out.println("After swap "
> + "a = " + a
> + " b = " + b);
>
> }
> }
This one works:
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
String firstString ="aaa";
String secondString = "bbb";
StringBuffer firstStringBuffer = new StringBuffer();
StringBuffer secondStringBuffer = new StringBuffer();
firstStringBuffer.append(firstString);
secondStringBuffer.append(secondString);
System.out.println("Before swap - firstString = " + firstString + "
secondString = " + secondString );
swap(firstStringBuffer, secondStringBuffer);
firstString = firstStringBuffer.toString();
secondString = secondStringBuffer.toString();
System.out.println("After swap - firstString = " + firstString
+ " secondString = " + secondString );
}
static void swap(StringBuffer firstStringBuffer, StringBuffer
secondStringBuffer) {
StringBuffer temporaryStringBuffer = new StringBuffer();
temporaryStringBuffer.append(firstStringBuffer);
firstStringBuffer.replace(0, secondStringBuffer.length(),
secondStringBuffer.toString());
secondStringBuffer.replace(0, temporaryStringBuffer.length(),
temporaryStringBuffer.toString());
}
}
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/javaprogrammingwithpassion?hl=en
-~----------~----~----~----~------~----~------~--~---