从字符串中获取数字
本文关键字:数字 获取 字符串 | 更新日期: 2023-09-27 18:00:49
我知道有人问过这个问题,但我没有找到适合我的解决方案,我是 C# 的新手。
我有图像名称如下:
propimage22997_1.jpg
或/propimage229927_1.jpg
等。
我需要数字22997
所以从字符9
开始,到_
结束。
由于这是一个文件名,请使用Path
类。然后可以使用 LINQ:
string fileName = "propimage22997_1.jpg";
string fileNameOnly = Path.GetFileNameWithoutExtension(fileName);
string token = fileNameOnly.Remove(fileNameOnly.LastIndexOf('_'));
string number = new string(token.SkipWhile(Char.IsLetter).ToArray()); //22997
或者跳过非数字字符:
number = new string(token.SkipWhile(c=> !Char.IsDigit(c)).ToArray());
如果您需要它作为int
而不是string
请使用int.TryParse
(如果格式可能无效(或int.Parse
:
int num = int.Parse(number);
你可以这样做:
string test = "propimage22997_1.jpg";
string number = Regex.Match(test,"'d+").Value;
我现在
不在带有Visual Studio的PC前,但是这样的事情应该可以工作:
var numbers = Regex.Split(yourImageName, @"^'d");
这应该返回一个字符串数组,其中包含在其中找到的数字。然后,您可以检查数组(数字(是否为空,如果不是,请使用它。
private static int GetNumber(string sz)
{
string szFileName = sz; //"propimage22997_1.jpg";
int index = 0;
int Number = 0;
index = szFileName.IndexOf('_');
Number = Convert.ToInt32(szFileName.Substring(9, (szFileName.Length - index - 1)));
return Number;
}
}