Surendra Jnawali
Surendra Jnawali

Reputation: 3240

Java String truncate from URL address

I have an URL address like: http://myfile.com/File1/beauty.png
I have to remove http://site address/ from main string
That mean result should be File1/beauty.png

Note: site address might be anything(e.g some.com, some.org)

Upvotes: 1

Views: 1451

Answers (4)

Rudi Kershaw
Rudi Kershaw

Reputation: 12952

If, as you say, you only want to use the standard String methods then this should do it.

public static String getPath(String url){
        if(url.contains("://")){
            url = url.substring(url.indexOf("://")+3);
            url = url.substring(url.indexOf("/") + 1);
        } else {
            url = url.substring(url.indexOf("/")+1);
        }
        return url;
    }

If the url contains :// then we know that the string you are looking for will come after the third /. Otherwise, it should come after the first. If we do the following;

System.out.println(getPath("http://myfile.com/File1/beauty.png"));
System.out.println(getPath("https://myfile.com/File1/beauty.png"));
System.out.println(getPath("www1.myfile.com/File1/beauty.png"));
System.out.println(getPath("myfile.co.uk/File1/beauty.png"));;

The output is;

File1/beauty.png
File1/beauty.png
File1/beauty.png
File1/beauty.png

Upvotes: 2

user2075328
user2075328

Reputation: 431

String s = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";
s = s.substring(s.indexOf("/", str.indexOf("/") + 1));

Upvotes: -1

user3467480
user3467480

Reputation: 93

You can use the below approach to fetch the required data.

    String url = "http://myfile.org/File1/beauty.png";
    URL u = new URL(url);
    String[] arr = url.split(u.getAuthority());

    System.out.println(arr[1]);

    Output - /File1/beauty.png

Upvotes: 0

INK
INK

Reputation: 235

See here: http://docs.oracle.com/javase/tutorial/networking/urls/urlInfo.html

Just create a URL object out of your string and use URL.getPath() like this:

String s = new URL("http://myfile.com/File1/beauty.png").getPath();

If you don't need the slash at the beginning, you can remove it via s.substring(1, s.length());

Edit, according to comment:

If you are not allowed to use URL, this would be your best bet: Extract main domain name from a given url

See the accepted answer. Basically you have to get a TLD list, find the domain and substract everything till the domain names' end.

Upvotes: 3

Related Questions