A java String variable whose value is
String path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
I want to remove the last four characters i.e., .null
. Which method I can use in order to split.
A java String variable whose value is
String path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
I want to remove the last four characters i.e., .null
. Which method I can use in order to split.
I think you want to remove the last five characters ('.', 'n', 'u', 'l', 'l'):
path = path.substring(0, path.length() - 5);
Note how you need to use the return value - strings are immutable, so substring
(and other methods) don't change the existing string - they return a reference to a new string with the appropriate data.
Or to be a bit safer:
if (path.endsWith(".null")) {
path = path.substring(0, path.length() - 5);
}
However, I would try to tackle the problem higher up. My guess is that you've only got the ".null" because some other code is doing something like this:
path = name + "." + extension;
where extension
is null. I would conditionalise that instead, so you never get the bad data in the first place.
(As noted in a question comment, you really should look through the String
API. It's one of the most commonly-used classes in Java, so there's no excuse for not being familiar with it.)
import org.apache.commons.lang3.StringUtils;
// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf.null"
StringUtils.removeEnd(path, ".null");
// path = "http://cdn.gs.com/new/downloads/Q22010MVR_PressRelease.pdf"
I am surprised to see that all the other answers (as of Sep 8, 2013) either involve counting the number of characters in the substring ".null"
or throw a StringIndexOutOfBoundsException
if the substring is not found. Or both :(
I suggest the following:
public class Main {
public static void main(String[] args) {
String path = "file.txt";
String extension = ".doc";
int position = path.lastIndexOf(extension);
if (position!=-1)
path = path.substring(0, position);
else
System.out.println("Extension: "+extension+" not found");
System.out.println("Result: "+path);
}
}
If the substring is not found, nothing happens, as there is nothing to cut off. You won't get the StringIndexOutOfBoundsException
. Also, you don't have to count the characters yourself in the substring.
If you like to remove last 5 characters, you can use:
path.substring(0,path.length() - 5)
( could contain off by one error ;) )
If you like to remove some variable string:
path.substring(0,path.lastIndexOf('yoursubstringtoremove));
(could also contain off by one error ;) )
Another way:
if (s.size > 5) s.reverse.substring(5).reverse
BTW, this is Scala code. May need brackets to work in Java.