如何使用子字符串从第五个空格到第六个空格获取值



我的问题是我想提取字符串中的第一个数字。字符串的格式是这样的

string text = "Board the DT line, go 1 stops toward Test";

我想要的是值1。这就是我尝试的方式

int digit1 = int.Parse(text.Substring(text.IndexOf("go")+1, text.IndexOf("stops")-1));

我得到的错误是"系统"类型的未处理异常。mscorlib.dll 中出现FormatException

附加信息:输入字符串的格式不正确。

如果你是编程新手,你可能想把它分解成更小的任务。

例如,您可以首先对子字符串值进行硬编码,以确保获得正确的结果

var str = "Board the DT line, go 1 stops toward Test";   
var number = str.Substring(22, 1);

当你知道你有正确的数字时,你可以看看如何通过编程获得这些值。

var index = str.IndexOf("go "); //gives you 19

var index = str.IndexOf("go ") + 3 //add 3 to get the start index

然后用硬编码的值代替代码

var number = str.Substring(str.IndexOf("go ") + 3, 1);

您也可以使用regex:[0-9]+。此模式提取字符串中的所有数字。

var matches = Regex.Matches("Board the DT line, go 1 stops toward Test", "[0-9]+");
foreach(Match match in matches)
{
int number = int.Parse(match.Value);
Console.WriteLine(number);
}

最新更新