0

先頭にプロトコルが含まれている場合と含まれていない場合がある Web アドレスを含む文字列があります。これは html a タグの href に入るため、アドレスが相対アドレスとして扱われないようにプロトコルを含める必要があります。これを達成するための最短のコードは何ですか。明確にするために、可能な入力と期待される出力を以下に示します。

文字列 url = "www.google.com"; //「http://www.google.com」が必要

文字列 url = "google.com"; //期待される " http://google.com "

文字列 url = " http://www.google.com "; //「http://www.google.com」が必要

文字列 url = " https://www.google.com "; //「https://www.google.com」が必要

アップデート:

私がすでに試したことを知りたい人にとっては、関連するプレフィックスの 1 つで URL がすでに開始されているかどうかを確認し、必要に応じて追加する if ステートメントがいくつかありました。これは、C# プログラマーにとっては些細なことですが、「最短の方法」には近づきません。問題なく動作しましたが、私の質問は、それを行うためのより良い方法があるかどうかを確認することです.

4

3 に答える 3

5

UriBuilderこれにはクラスを使用できます。

public static Uri GetUri(this string s)
{
    return new UriBuilder(s).Uri;
}

このコンストラクターは、uri で指定されたように設定された Fragment、Host、Path、Port、Query、Scheme、および Uri プロパティを使用して、UriBuilder クラスの新しいインスタンスを初期化します。

uri でスキームが指定されていない場合、スキームはデフォルトで「http:」になります。

于 2013-10-01T15:35:12.840 に答える