如何从一个字符串创建多个字符串?

时间:2017-03-29 16:17:40

标签: c#

我想过滤掉字符串数字的所有部分,并将它们全部添加到字符串列表中。

所以来自:["2931741444","2931789497","2931745064","2931763896","2931728251","2931786984","2931799607","293177823","2931795568","293171105"]

list.Add(2931741444);
list.Add(2931789497);
list.Add(2931745064);

等...

我遍历字符串,查看数字开始的位置并将它们添加到新字符串中,但我现在已经卡住了。这是我的尝试:

static void Main(string [] args)         {

        using (WebClient wc = new WebClient())
        {
            var json = wc.DownloadString("http://api.hivemc.com/v1/game/SG/data");
            Console.WriteLine(json);
            Console.WriteLine("Was called first.");

            int counter = 2;
            string newString = "";
            string s = json.ToString();
            // loop through the string
            for (int i=0; i < s.Length; i++)
            {

                if (s[i].ToString() == "\"")
                {
                    counter++;
                }

                if (counter.isEven)
                {
                    newString = newString + i;
                }
            } 
        }


        Console.ReadKey();
    }

有更简单的方法吗?我也无法看到如何使用此代码执行其他字符串。

2 个答案:

答案 0 :(得分:1)

我认为你要做的是deserialization。您可以使用Json.NET

var list = new List<long>();
using (var wc = new WebClient())
{
    var json = wc.DownloadString("http://api.hivemc.com/v1/game/SG/data");
    list = JsonConvert.DeserializeObject<List<long>>(json);
}

答案 1 :(得分:1)

var stringValues = JsonConvert.DeserializeObject<string[]>(json);
int[] values = Array.ConvertAll(stringValues, s => int.Parse(s));

(随意交换任何其他json序列化程序库;示例是使用Json.NET)