C# 我试图从c语言的文本文件中只提取数字#

C# 我试图从c语言的文本文件中只提取数字#,c#,C#,我试图从c#中的文本文件中只提取数字。我的文本文件如下所示 xasd 50 ysd 20 zaf 40 bhar 60 我正在尝试使用openfileDialoug浏览一个文件,读取该文件并从同一文件中提取数字,需要将这些值与常量值进行比较,例如60。我需要显示有多少个数字比那个常数多。如果这些数字大于60,那么我需要将较大值的数字与现有文本一起附加到richtextBox 如果您的文件始终如您所示,那么您可以轻松地将其拆分并解析: string filePath = ""; // from

我试图从c#中的文本文件中只提取数字。我的文本文件如下所示

xasd 50 ysd 20 zaf 40 bhar 60

我正在尝试使用
openfileDialoug
浏览一个文件,读取该文件并从同一文件中提取数字,需要将这些值与常量值进行比较,例如
60
。我需要显示有多少个数字比那个常数多。如果这些数字大于60,那么我需要将较大值的数字与现有文本一起附加到richtextBox

如果您的文件始终如您所示,那么您可以轻松地将其拆分并解析:

string filePath = ""; // from OpenFileDialog

string fileContents = File.ReadAllText(filePath);
string[] values = fileContents.Split();
int valueInt, greaterValuesCount = 0;    

foreach (var value in values)
{
    if (int.TryParse(value, out valueInt))
    { 
        greaterValueCount++;
        // Do something else here
    }
}
你可以使用这个方法。如果可以将字符串s解析为整数并将值存储在int result中,则返回true。此外,还可以使用该方法拆分从文本文件中读取的行

 string line = fileObject.ReadLine();
 int constant = 60; //For your example
 int num = 0;
 string []tokens = line.Split(); //No arguments in this method means space is used as the delimeter
 foreach(string s in tokens)
 {
     if(Int32.TryParse(s, out num)
     {
         if(num > constant)
         {
             //Logic to append to Rich Text Box
         }
     }
 }

正则表达式是一种在字符串中查找数字的优雅方法,这是操作要求,类似于:

string allDetails = File.ReadAllText(Path);

result = Regex.Match(allDetails, @"\d+").Value;
现在,
resultString
将包含所有提取的整数

如果你想处理负数也=,那么做这个修改

result = Regex.Match(allDetails, @"-?\d+").Value;
希望这有帮助,请查看以下帖子:


您能再多展示一点您的文本文件作为示例吗?非常感谢。。这对我帮助很大。