【问题标题】:Using String reader to manage multiple lines [duplicate]使用字符串阅读器管理多行[重复]
【发布时间】:2021-09-20 10:50:25
【问题描述】:

这是我当前的代码:

string serverInfo = "Connected to 74.91.119.188:27015\n" +
                            "hostname:[FN] 24 / 7 Surf Utopia | Styles | !KNIFE,!WS,!GLOVES\n" +
                            "version: 1.37.9.5 secure\n" +
                            "os      :  Linux\n" +
                            "type    :  community dedicated\n" +
                            "map: surf_utopia_v3\n" +
                            "players : 24 humans, 0 bots(64 / 0 max)(not hibernating)\n" +

                            "# userid name uniqueid connected ping loss state rate\n" +
                            "# 3785 1 \"Con\" STEAM_1:0:128083116 03:13 32 0 active 196608\n" +
                            "# 3786 2 \"yolo\" STEAM_1:0:172863146 03:13 171 0 active 196608\n" +
                            "# 3787 3 \"chodyツ\" STEAM_1:0:42129452 03:13 46 0 active 786432\n" +
                            "#end\n";
        var removeEnd = serverInfo.IndexOf("#end");
        var newString = serverInfo.Remove(removeEnd);
        var firstHashTag = newString.IndexOf("#");
        var secondHashTag = newString.IndexOf("#", firstHashTag + 1);
        var final = newString.Substring(secondHashTag);

        var newFinal = final.Replace("# ", "#");

        using (StringReader reader = new StringReader(newFinal.ToString()))
        {
            string readText = await reader.ReadToEndAsync();

            int foundS1 = readText.IndexOf(" ");
            int foundS2 = readText.IndexOf(" ", foundS1 + 1);

            newFinal2 = readText.Remove(foundS1 + 1, foundS2 - foundS1);

            Console.WriteLine(newFinal2);
        }
        Console.ReadLine();

Result from code

我的问题是。我该如何修改这部分:

            using (StringReader reader = new StringReader(newFinal.ToString()))
        {
            string readText = await reader.ReadToEndAsync();

            int foundS1 = readText.IndexOf(" ");
            int foundS2 = readText.IndexOf(" ", foundS1 + 1);

            newFinal2 = readText.Remove(foundS1 + 1, foundS2 - foundS1);

            Console.WriteLine(newFinal2);
        }

所以它适用于可能存在的每一行?字符串 serverInfo 是我自己输入的数据,但通常我会从 API 获取这些数据。每条线代表一个玩家,当我最终从 API 获取数据时,我不知道可能有多少条线,所以我需要一个不知道会有多少条线的解决方案。那么如何从条件相同的每一行中删除一些东西

【问题讨论】:

    标签: c# string


    【解决方案1】:

    您可以使用string.Split 函数拆分行:

    var userLines = newFinal.Split(Environment.NewLine);
    foreach (var userLine in userLines)
    {
        Console.WriteLine(userLine);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多