I have a requirement in which I need to remove the semicolon if it is present at the end of the String(only at the end). I have tried the following code. But still it is not
Strings in java are immutable, so replaceAll
returns a new string.
Do
text = text.replaceAll(";", "");
You should not forget that String is immutable. So, whenever you want to modify it, you have to assign the result to a variable.
A possible solution to what you need:
if (text.endsWith(";") {
text = text.substring(0, text.length() - 1);
}
public static void main(String[] args) {
String text_original = "wherabouts;";
char[] c = text_original.toCharArray();
System.out.println("TEXT original: "+ text_original);
String text_new = c[text_original.length()-1] == ';' ? text_original.substring(0,text_original.length()-2) : text_original;
System.out.println("TEXT new: "+text_new);
}
text = text.replaceAll(";", "");
Here's a little extra reading for you http://javarevisited.blogspot.com/2010/10/why-string-is-immutable-in-java.html
if (text.endsWith(";")){
text = text.substring(0,text.length()-1);
}
String is immutable so new String will be created after replace.
String newString = text.replace(";", "");
or
String newString = text.replaceAll(";$", "");