【发布时间】:2015-11-27 14:52:37
【问题描述】:
所以我正在尝试用 SteamKit2 做一些实验。 而当我一直在尝试为切换游戏进行类似命令的切换时,出现了一个问题。它自己的命令是'!play STEAM GAME APPID'。我想要子字符串做的只是检索 AppID 号码 - 没有 '!play ' 部分。我从 6 开始对它进行 SubStringed(因为空格也被视为字符),但现在我不确定如何制作它,所以它从 6 到最大的子串。我使用的是在下面,但它不起作用(向我抛出 System.ArgumentOutOfRangeException)。
private const string PlayCmd = "!play";
ProcessCommandSystem("!play 440");
private void ProcessCommandSystem(string message)
{
if (message.StartsWith(PlayCmd))
{
int appidnumeral;
string appidraw = message.Substring(6, (message.Length));
int.TryParse(appidraw, out appidnumeral);
Bot.SetGamePlaying(appidnumeral);
}
}
不知道为什么这不起作用,但我稍后在代码中尝试将字符串转换为整数值,因为 SetGamePlaying 似乎不接受字符串,这就是我想要的原因对它进行子串化(将 '!Play' 去掉,所以只有数字),然后将子串化的东西转换为整数值,用于 SetGamePlaying。
【问题讨论】:
-
字符串 appidraw = message.Replace("!play", "")
-
@OguzOzgul,这可能适用于这种情况,但不是一般情况下:它会删除字符串中所有出现的“!play”,而不仅仅是开始的
-
你认为我不知道吗:) 他试图从“!play”的末尾开始获取字符串的其余部分。这至少更安全。