C#从字符串中提取整数并进行比较

C#从字符串中提取整数并进行比较,c#,compare,C#,Compare,比如说,我有一系列的比赛结果,每个队都有一个字母。我想把重点放在A队,并将其得分与其他球队进行比较,以打印出A队赢、输、平等几场比赛。。。。下面显示的示例字符串 string results = " A 1 B 0, A 2 C 4, A 1 D 8, A 5 E 9"; 我认为最好的方法是提取团队A的所有分数,并用它们填充一个数组,然后对剩余的分数执行相同的操作。我曾试图解决这个问题,但一直被难倒。有什么想法吗 编辑:由于未发布尝试: char[] tobeconverted = resul

比如说,我有一系列的比赛结果,每个队都有一个字母。我想把重点放在A队,并将其得分与其他球队进行比较,以打印出A队赢、输、平等几场比赛。。。。下面显示的示例字符串

string results = " A 1 B 0, A 2 C 4, A 1 D 8, A 5 E 9";
我认为最好的方法是提取团队A的所有分数,并用它们填充一个数组,然后对剩余的分数执行相同的操作。我曾试图解决这个问题,但一直被难倒。有什么想法吗

编辑:由于未发布尝试:

char[] tobeconverted = results.Where(Char.IsDigit).ToArray();
        int[] sequence = new int[10];

        for (int i = 0; i < tobeconverted.Length; i++)
        {
            sequence[i] = Convert.ToInt32(tobeconverted[i].ToString());

        }
然后,我计划使用带有子字符串的索引来提取数字并转换为int,但这只适用于第一次和第二次出现,我不知道如何获取其他数字值。

string results=“a1b0,a2c4,a1d8,a5e9”;
string results = "A 1 B 0, A 2 C 4, A 1 D 8, A 5 E 9";
        List<int> teamAScores = new List<int>();
        List<int> otherTeamScores = new List<int>();
        foreach(string scoreSet in results.Split(','))
        {
            scoreSet.Replace(" ", "");
            int teamA = -1;
            int teamX = -1;
            int.TryParse(scoreSet.Substring(1, 1), out teamA);
            int.TryParse(scoreSet.Substring(3, 1), out teamX);
            if (teamA > -1 && teamX > -1)
            {
                teamAScores.Add(teamA);
                otherTeamScores.Add(teamX);
            }
        }
List teamAScores=新列表(); 列出其他团队分数=新建列表(); foreach(results.Split(',')中的字符串分数集) { 分数集。替换(“,”); int teamA=-1; int teamX=-1; int.TRIPARSE(得分集、子串(1,1),外组队); int.TRIPARSE(得分集、子串(3,1),外组队X); 如果(teamA>-1和&teamX>-1) { teamAScores.Add(teamA); 其他团队分数。添加(团队X); } }
现在您有了一个列表,其中每场比赛的得分在索引方面匹配

  • 在逗号处拆分字符串。这将返回一个字符串数组
  • 用空格分割数组中的每个字符串。这将导致另一个数组
  • 提取数组的成员
  • 这是一个示例程序

      class Program
      {
        static void Main(string[] args)
        {
    
          string results = " A 1 B 0, A 2 C 4, A 1 D 8, A 5 E 9";
    
          string[] matches = results.Trim().Split(',');
    
          List<Match> sportResults = new List<Match>();
          foreach (string match in matches)
          {
            string[] parts = match.Trim().Split(null);
    
            sportResults.Add(new Match() {
              Team1 = parts[0], Score1 = int.Parse(parts[1]),
              Team2 = parts[2], Score2 = int.Parse(parts[3])});
    
          }
    
          sportResults.ForEach(a => Console.WriteLine(a));
        }
      }
    

    当你要求社区解决一个你无法解决的问题时,最好是发布你的尝试,这样我们就可以看到这不是一个给我一个codez的问题,发布您的尝试会阻止我们建议您已经尝试过并被视为不可行的内容。8条数据是如何粘在一个字符串中的?@puropoix——我猜可能会保存到文本文件中,打印在纸上,扫描回来,然后进行OCRD。现在您有两个问题。谢谢,感谢您不要担心-保重!
      class Program
      {
        static void Main(string[] args)
        {
    
          string results = " A 1 B 0, A 2 C 4, A 1 D 8, A 5 E 9";
    
          string[] matches = results.Trim().Split(',');
    
          List<Match> sportResults = new List<Match>();
          foreach (string match in matches)
          {
            string[] parts = match.Trim().Split(null);
    
            sportResults.Add(new Match() {
              Team1 = parts[0], Score1 = int.Parse(parts[1]),
              Team2 = parts[2], Score2 = int.Parse(parts[3])});
    
          }
    
          sportResults.ForEach(a => Console.WriteLine(a));
        }
      }
    
    class Match
      {
        public string Team1 { get; set; }
        public string Team2 { get; set; }
    
        public int Score1 { get; set; }
        public int Score2 { get; set; }
    
        public override string ToString()
        {
          return "Team " + Team1 + " " + Score1 + " VS " + Team2 + " " + Score2;
        }
      }