27

文字列からあらゆる種類の「Web の始まり」を削除する必要があります

私の TextView には、「http://」、「http:// www.」が含まれていない必要があります。、「www。」およびその他の URL プレフィックス。

これを手伝ってくれませんか?

4

5 に答える 5

72

のインスタンスをURI使用し、それを使用して必要に応じて分割します。

URI uri = new URI(whateverYourAddressStringIs);
String path = uri.getPath(); // split whatever you need

http://developer.android.com/reference/android/net/Uri.html

于 2013-05-21T16:45:51.060 に答える
39

正規表現を使用してそれを行うことができます

"www.aaa".replaceFirst("^(http[s]?://www\\.|http[s]?://|www\\.)","")
于 2013-05-21T15:25:19.357 に答える
11

文字列置換を使用できます。

String myString = "http://www.abc.com";
myString.replace("http://","").replace("http:// www.","").replace("www.","");
于 2013-05-21T15:25:22.550 に答える
3

「ウェブの始まり」と言うときは、「プロトコル」を意味すると思います。URL の詳細については、RFCまたはウィキペディアを参照してください。

一般的に言えば、「www.」を削除することはできません。URL から取得し、URL が同じホストを指すことを保証します。ユーザーから非表示にするだけなら問題ありませんが、個人的には面倒だと思います。

次のコードは、http だけでなく、Java が認識しているすべてのプロトコルを取り除きます。すべてのプロトコルに // があるわけではないため、手動で確認する必要があります。Java URL クラスは、必要なだけ正確に URL を分割できます。

import java.net.URL;

public class test
{
    public static void main(String[] args)
    {
        try {
            URL url = new URL(args[0]);
            String protocol = url.getProtocol();
            String result = args[0].replaceFirst(protocol + ":", "");
            if (result.startsWith("//"))
            {
                result = result.substring(2);
            }

            System.out.println(result);
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}
于 2013-05-21T15:57:43.553 に答える