G
Gene Wirchenko
Dear Java'ers:
I am working with StringBuilder now. I grant that it is faster
in execution, but it is taking a bunch of my time to get it straight.
I decided to change my VRString class (call-by-value-result) to
VRStringB. Complications ensued.
The amount of ornamentation required in my code was nasty, so I
did some simplifying.
How does one assign a String value to a StringBuilder variable?
For the class below (before I defined .Set()), I needed
cParsedWord.Value.replace(
0,cParsedWord.Value.length(),cScan.substring(xStart,xEnd));
With .Set(), I just need
cParsedWord.Value.Set(cScan.substring(xStart,xEnd));
For value equality to a String value, one needs something like
cParsedWord.Value.toString().equals("some value")
(because without the .toString(), the comparison will fail) whereas
with .equals() below, this will do it
cParsedWord.equals("some value")
***** Start of Code *****
// VRStringB Class
// StringBuilder Value-Result Parameter Handling
// Last Modification: 2011-06-28
class VRStringB
{
StringBuilder Value;
VRStringB()
{
this.Value=new StringBuilder("");
}
VRStringB
(
StringBuilder Init
)
{
this.Value=Init;
}
boolean equals
(
String theString
)
{
return this.Value.toString().equals(theString);
}
void Set
(
String theString
)
{
this.Value.replace(0,this.Value.length(),theString);
}
}
***** End of Code *****
Am I missing something about StringBuilder, or is it really this
difficult to play with? It would make a lot more sense to me if
StringBuilder worked more like String does.
Sincerely,
Gene Wirchenko
I am working with StringBuilder now. I grant that it is faster
in execution, but it is taking a bunch of my time to get it straight.
I decided to change my VRString class (call-by-value-result) to
VRStringB. Complications ensued.
The amount of ornamentation required in my code was nasty, so I
did some simplifying.
How does one assign a String value to a StringBuilder variable?
For the class below (before I defined .Set()), I needed
cParsedWord.Value.replace(
0,cParsedWord.Value.length(),cScan.substring(xStart,xEnd));
With .Set(), I just need
cParsedWord.Value.Set(cScan.substring(xStart,xEnd));
For value equality to a String value, one needs something like
cParsedWord.Value.toString().equals("some value")
(because without the .toString(), the comparison will fail) whereas
with .equals() below, this will do it
cParsedWord.equals("some value")
***** Start of Code *****
// VRStringB Class
// StringBuilder Value-Result Parameter Handling
// Last Modification: 2011-06-28
class VRStringB
{
StringBuilder Value;
VRStringB()
{
this.Value=new StringBuilder("");
}
VRStringB
(
StringBuilder Init
)
{
this.Value=Init;
}
boolean equals
(
String theString
)
{
return this.Value.toString().equals(theString);
}
void Set
(
String theString
)
{
this.Value.replace(0,this.Value.length(),theString);
}
}
***** End of Code *****
Am I missing something about StringBuilder, or is it really this
difficult to play with? It would make a lot more sense to me if
StringBuilder worked more like String does.
Sincerely,
Gene Wirchenko