控制台没有写

时间:2017-05-17 22:56:26

标签: c# string console

using System;
using System.Net;
static class Program {
    public static void Main()
    {
        WebClient wc = new WebClient();
        var proxies = wc.DownloadString(@"http://proxy-ip-list.com/download/free-proxy-list.txt");
        Console.WriteLine("http://" + proxies.Split(';')[5]);
        Console.ReadLine();
    }
}

enter image description here

我非常困惑......

我试过打印机Char-by-Char。 我尝试在写入之前将字符串分配给变量。 我已经尝试了一切,发生了什么事?

Console.WriteLine("http://" + "182.255.46.123:8080");有效......

3 个答案:

答案 0 :(得分:3)

这是因为返回的字符串在开头包含一个回车符:

proxies.Split(';')[5] = " \r182.255.46.123:8080"

您可以将其删除:

Console.WriteLine("http://" + proxies.Split(';')[5].Replace("\r", "").Trim());

答案 1 :(得分:0)

根据您的评论更新了答案。您只需要Trim()从开始和结束中删除所有空格。

using System;
using System.Net;

static class Program
{
    public static void Main()
    {
        WebClient wc = new WebClient();
        var proxies = wc.DownloadString(@"http://proxy-ip-list.com/download/free-proxy-list.txt");

        Console.WriteLine("http://" + proxies.Split(';')[5].Trim());

        Console.ReadLine();
    }
}

答案 2 :(得分:0)

试试这个:

using System;
using System.Text.RegularExpressions;
using System.Net;

namespace Rextester
{
    public class Program
    {
        public static void Main(string[] args)
        {
            WebClient wc = new WebClient();
            var proxies = wc.DownloadString(@"http://proxy-ip-list.com/download/free-proxy-list.txt");
            var regex = new Regex(@"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}");
            var match = regex.Matches(proxies);
            Console.WriteLine("http://" + match[3].Value);
            Console.ReadLine();
        }
    }
}

如果请求结果的内容发生变化,则保存最多。