抓住一根动态大小的绳子

本文关键字:动态 一根 | 更新日期: 2023-09-27 18:26:00

假设我有字符串I,RT______,_,__;,我想获取一个整数,它将是像I,RT,______,_,__;09123103912093这样的字符串之外的,所以我只想获取这个09123103912093值,这将是动态值,每次都是不同的整数。

问题是,我不知道这个整数的固定大小,它可能是12,也可能只是2,也可能是09123103912093

附言,如果值得一提的话,在这个整数之后就是文件的末尾。没有进一步的内容。

抓住一根动态大小的绳子

string tmp = "I,RT,______,_,__;09123103912093"
int yourInt = int.Parse(tmp.Split(';').Last());

用:TextReader.ReadToEnd();将文件读到最后,就得到了字符串。现在把绳子分开。分隔符字符是;,您会得到一个string[]:

  string[] myStringArr = myString.Split(';');

现在取数组的第二项:myStringArr[1]

然后您可以将字符串解析为int:

int myValue = Int32.Parse(myStringArr[1]);


另一种可能性是使用string.Substring(x,y);:

要使用它,您必须找到字符串的startindex(在您的情况下,是分号加一个字符的索引):myString.IndexOf(';') +1
然后您需要子字符串的长度
由于字符串在所需的int值之后结束,因此可以简单地使用字符串的整个长度并减去分号的索引:myString.Length - (myString.IndexOf(';') +1)
因此,您的代码应该是:
myString.Substring(myString.IndexOf(';')+1,myString.Length - (myString.IndexOf(';') +1));
MSDN文章:String.Substring方法(Int32)

您可以使用一些简单的字符串操作函数来实现这一点:

int indexOfSemiColon = myString.LastIndexOf(":");
string numberString = myString.SubString(indexOfSemiColon + 1);
int resultingInteger = int.Parse(numberString);