• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

String replacement

 
Amirtharaj Chinnaraj
Ranch Hand
Posts: 241
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hey guys

i want change the sting value test's to test\'s
stored in a string

this the code i tried but the result is not getting changed i want to know
why it is not changed and how i can change

String test="test's";
test= test.replace("'", "'/");
String test1 =test;

regards
amir
 
Ronda Spring
Greenhorn
Posts: 1
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Strings are immutable - mostly for safety/security reasons that are beyond me. Once made their contents are not altered. The replace() method is returning the altered string, but it needs a new home.

String s = "test";
String x = s.replace("s", "x");
System.out.println(s);
System.out.println(x);

This turns test to text, but you won't see the result in s, only in x.
 
Joanne Neal
Rancher
Pie
Posts: 3742
16
  • 0
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You say in your question that you want to chage test's to test\'s, but your code is trying to change it to test'/s

Assuming you wanted what you said in the question, you need to escape the '\', because '\' is a special character in Java Strings.
Try

@Ronda - this will work because test is a String reference, so the second line actually just points it at the new String and the original String is no longer referenced and so is available for garbage collection.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic