File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes string buffer Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "string buffer" Watch "string buffer" New topic

string buffer

anushree ari
Ranch Hand

Joined: Sep 30, 2002
Posts: 98
hi guys,

int a = 0;
StringBuffer s = new StringBuffer("Hello");
if ((s.length() < 10) | (s.append(" world").equals("Well done")))
; // do nothing
System.out.println("Value is - " + s);
in the above code, i thought the result is "Hello",b'cas string buffer doesn't override the equals method, so the result is same as s. but the ans is helloworld, how?
anybody correct me?
thx in advance

Ron Newman
Ranch Hand

Joined: Jun 06, 2002
Posts: 1056
s.append(" world") modifies the content of the StringBuffer s.

Ron Newman - SCJP 1.2 (100%, 7 August 2002)
Jessica Sant

Joined: Oct 17, 2001
Posts: 4313

s.length() IS less than 10 -- so that evalutates to true
then things get evaluated from left to right for the 2nd half of the equation:
s.append(" world") -- so at this point s is "Hello world"
s.equals("Well done") -- like you said the .equals method is not overridden in StringBuffer and this half of the equation evalutes to false
But... what would happen if the if statement looked like this:
if ((s.length() < 10) || (s.append(" world").equals("Well done")))

- Jess
Blog:KnitClimbJava | Twitter: jsant | Ravelry: wingedsheep
I agree. Here's the link:
subject: string buffer
It's not a secret anymore!