11

まず、同様の投稿が他にもあることは認識していますが、私の投稿は URL を使用しており、区切り文字が何であるかが常にわからないため、質問を投稿しても問題ないと思います。私の課題は、粗雑な Web ブラウザーを作成することです。ユーザーが目的の URL を入力する textField があります。次に、明らかにそのWebページに移動する必要があります。これは、私のコードがどのように見えるかについての私の先生からの例です。これは、ソケットに送信することになっているコードです。サンプル URL: http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

 GET /wiki/Hypertext_Transfer_Protocol HTTP/1.1\n
Host: en.wikipedia.org\n
\n

私の質問は次のとおりです。URL を 1 つの完全な文字列として読み取るので、「en.wikipedia.org」の部分と拡張子だけを抽出するにはどうすればよいですか? テストとしてこれを試しました:

 String url = "http://en.wikipedia.org/wiki/Hypertext Transfer Protocol";
    String done = " ";
    String[] hope = url.split(".org");

    for ( int i = 0; i < hope.length; i++)
    {
        done = done + hope[i];
    }
    System.out.println(done);

これは、「.org」を含まない URL を出力するだけです。私は正しい軌道に乗っていると思います。よくわかりません。また、Web サイトにはさまざまな末尾 (.org、.com、.edu など) があることを知っているので、可能性のあるさまざまな末尾を補う if ステートメントがいくつか必要になると思います。基本的に、必要な 2 つの部分に URL を取得するにはどうすればよいですか?

4

5 に答える 5

43

URLクラスはほとんどこれを行います。チュートリアルを見てください。たとえば、次の URL があるとします。

http://example.com:80/docs/books/tutorial/index.html?name=networking#DOWNLOADING

取得できる情報は次のとおりです。

protocol = http
authority = example.com:80
host = example.com
port = 80
path = /docs/books/tutorial/index.html
query = name=networking
filename = /docs/books/tutorial/index.html?name=networking
ref = DOWNLOADING
于 2013-02-25T21:23:12.510 に答える
1

これは、URL 部分を分割する方法です: http://docs.oracle.com/javase/tutorial/networking/urls/urlInfo.html

于 2013-02-25T21:23:25.867 に答える
0

文字列の配列をurl.split(".org");試行して反復する代わりに。url.split("/");

または、正規表現を調べることができます。これは手始めに良い例です。

宿題頑張ってください。

于 2013-02-25T21:26:22.180 に答える