抓住一块动态大小的字符串

时间:2013-08-02 10:13:00

标签: c# .net

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

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

P.S。如果值得一提,这个整数后面是文件的结尾。没有进一步的内容。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:2)

使用:TextReader.ReadToEnd();将文件读到最后,然后获取字符串。 现在拆分字符串。分隔符字符为;,您将获得string[]

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

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

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

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


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

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

答案 2 :(得分:2)

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

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

int resultingInteger = int.Parse(numberString);