File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes replace char with string Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "replace char with string " Watch "replace char with string " New topic
Author

replace char with string

peter brews
Ranch Hand

Joined: Jan 25, 2002
Posts: 59
Following piece of code is working only for the first occurence of find string.It is not replacing the second occurence of find string.Could you please help me point out what's worong with this method.
public static String replace(String source,String find,String replace) {
StringBuffer sb = new StringBuffer(source);
int stringLength = source.length();
int start = 0;
int end = 0;
String result="";
int findLength=find.length();

while((end = source.indexOf(find, start)) != -1) {

start = end + findLength;
sb.replace(end,end+findLength,replace);
}
result = sb.toString();
Steve Deadsea
Ranch Hand

Joined: Dec 03, 2001
Posts: 125
Your algorithm works only if the string you are trying to find is the same length as the string you are replacing it with. Otherwise, sb.replace() alters the length of the stringbuffer and your start and end get messed up.
Instead of altering a stringbuffer, it would be easier if you built a stringbuffer with substrings from the orignal string.
If you haven't already done so, take a look at my implementation of this function in my StringHelper class:
http://ostermiller.org/utils/StringHelper.html
 
Consider Paul's rocket mass heater.
 
subject: replace char with string