0

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

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

ps 如果值得一提,在这个整数之后是文件的结尾。没有更多的内容。

4

3 回答 3

5
string tmp = "I,RT,______,_,__;09123103912093"
int yourInt = int.Parse(tmp.Split(';').Last());
于 2013-08-02T10:19:50.150 回答
2

用: 将文件读到最后,TextReader.ReadToEnd();然后你就得到了你的字符串。现在拆分字符串。分隔符 char 是;,你得到一个string[]

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

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

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

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


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

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

于 2013-08-02T10:19:47.680 回答
2

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

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

int resultingInteger = int.Parse(numberString);
于 2013-08-02T10:20:07.693 回答