【发布时间】:2020-03-12 14:05:15
【问题描述】:
我想在特定条件下获取特定的子字符串。
如果字符串是“Update xxx.csv /addroles”,那么
ProcessCommandAsync(input.Substring(0, split), input.Substring(startIndex, endIndex - startIndex), input.Substring(indexOfChar + 1))应该包含第一个参数Update,第二个参数xxx.csv,第三个应该是addroles。如果字符串是“Update xxx.csv”,那么它应该返回第一个参数
update,第二个参数xxx.csv。
如果我只提供 2 个参数,就会出现问题。它抱怨
System.ArgumentOutOfRangeException: '长度不能小于零。 参数名称:长度'
public async Task WaitForInputAsync()
{
while(true)
{
Console.Write("Enter Command: ");
Console.ForegroundColor = ConsoleColor.White;
var input = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.DarkCyan;
var split = input.IndexOf(" ");
var indexOfChar = input.IndexOf('/');
int startIndex = input.IndexOf(input.Substring(split + 1));
int endIndex = input.IndexOf("/") + (("/").Length)-1;
if (split >= 0)
{
await ProcessCommandAsync(input.Substring(0, split), input.Substring(startIndex, endIndex - startIndex), input.Substring(indexOfChar + 1));
}
else
{
await ProcessCommandAsync(input);
}
}
}
【问题讨论】:
标签: c#