| Author |
Problem while replacing line with another string
|
Rahul B. Shah
Greenhorn
Joined: Jan 17, 2011
Posts: 24
|
|
Hello,
i have following .txt file
aaa<!--UserID-->aaa
aaa<!--app name-->aaa
aaa<!--Error-->aaa
aaa<!--LDAPGroup-->aaa
I want to replace <!--UserID-->,<!--app name-->,<!--Error-->,<!--LDAPGroup-->,so output should be
aaaRahulaaa
aaaMyAppaaa
aaaMyErroraaa
aaaMyLDAPaaa
I have written following code which replaces only last line aaa<!--LDAPGroup-->aaa
private String getForm1(String app,String userId,String error,String ldapGrp){
String replaceStr="";
BufferedReader br;
try{
File file = new File("input.txt");
br = new BufferedReader(new FileReader(file));
String line="";
String oldText="";
String newText="";
while((line = br.readLine())!= null){
oldText += line + "\r\n";
}
br.close();
newText = oldText.replaceAll("<!--UserID-->",userId);
newText = oldText.replaceAll("<!--app name-->",app);
newText = oldText.replaceAll("<!--Error-->",error);
newText = oldText.replaceAll("<!--LDAPGroup-->",ldapGrp);
FileWriter writer = new FileWriter("input.txt");
writer.write(newText);
writer.close();
System.out.println("Done ...");
}catch(Exception e){
System.out.println("Exception :"+ e.toString());
}
return replaceStr;
}
Thank-You
Rahul Shah
|
 |
Jeff Verdegan
Bartender
Joined: Jan 03, 2004
Posts: 3141
|
|
First, please UseCodeTags(⇐click) so that your code will be readable.
Second, note that replaceAll takes a regex as it's input, not just a plain old String. You have at least one character in your input that's special to regex. I'm surprised it's working at all. Either form a proper regex, or use the simple replace() method, which doesn't use regex.
Finally, look at your code, carefully:
What, exactly, do you think the first line will do?
What, exactly, do you think the second line will do?
Imagine you're the JVM, very carefully execute those first two lines with pencil and paper. If you do that correctly, you'll have your answer.
|
 |
 |
|
|
subject: Problem while replacing line with another string
|
|
|