6

私は次の問題を抱えています:

iveは、グーグル画像検索を使用してjpgファイルへのリンクを抽出するプログラムを作成しました。しかし、リンクの前に15文字の長い文字列があり、削除できません。

    public const int resolution = 1920;
    public const int DEFAULTIMGCOUNT = 40;

    public void getimages(string searchpatt)
    {
        string blub = "http://images.google.com/images?q=" + searchpatt + "&biw=" + resolution;
        WebClient client = new WebClient();

        string html = client.DownloadString(blub);                                              //Downloading the gooogle page;
        MatchCollection mc = Regex.Matches(html,
            @"(https?:)?//?[^'<>]+?\.(jpg|jpeg|gif|png)");

        int mccount = 0;                                                                        // Keep track of imgurls 
        string[] results = new string[DEFAULTIMGCOUNT];                                         // String Array to place the Urls 

        foreach (Match m in mc)                                                                 //put matches in string array
        {
            results[mccount] = m.Value;                
            mccount++;
        }

        string remove = "/imgres?imgurl=";
        char[] removetochar = remove.ToCharArray();

        foreach (string s in results)
        {
            if (s != null)
            {
                s.Remove(0, 15);
                Console.WriteLine(s+"\n");
            }
            else { }
        }
       //  Console.Write(html);


    }

削除してトリムスタートを試みましたが、どれも機能せず、失敗を理解できません。

私はそれを次のように解決しました

        for (int i = 0; i < results.Count(); i++)
        {
            if (results[i] != null)
            {
                results[i] = results[i].Substring(15);
                Console.Write(results[i]+"\n");
            }
        }
4

1 に答える 1

30

(これは重複していると思いますが、すぐには見つかりません。)

.NETの文字列は不変です。string.Remove、などのメソッドは、既存のstring.Replace文字列の内容を変更しません。新しい文字列を返します。

したがって、次のようなものが必要です。

s = s.Remove(0, 15);

または、次を使用しますSubstring

s = s.Substring(15);
于 2013-02-24T08:11:25.247 に答える