【发布时间】: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();
我的问题是。我该如何修改这部分:
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 获取数据时,我不知道可能有多少条线,所以我需要一个不知道会有多少条线的解决方案。那么如何从条件相同的每一行中删除一些东西
【问题讨论】: