代码之家  ›  专栏  ›  技术社区  ›  Addie

如何根据字母和数字拆分C中的字符串?

  •  10
  • Addie  · 技术社区  · 15 年前

    如何在C_中将“mar10”等字符串拆分为“mar”和“10”?字符串的格式将始终是字母,然后是数字,因此我可以使用数字的第一个实例作为拆分字符串的指示器。

    4 回复  |  直到 9 年前
        1
  •  14
  •   Konrad Rudolph    15 年前

    你可以这样做:

    var match = Regex.Match(yourString, "(\w+)(\d+)");
    var month = match.Groups[0].Value;
    var day = int.Parse(match.Groups[1].Value);
    
        2
  •  5
  •   Sergej Andrejev    15 年前

    您不是直接说出来的,但从您的示例来看,您似乎只是在尝试解析日期。

    如果是这样,那么这个解决方案如何:

    DateTime date;
    if(DateTime.TryParseExact("Mar10", "MMMdd", new CultureInfo("en-US"), DateTimeStyles.None, out date))
    {
        Console.WriteLine(date.Month);
        Console.WriteLine(date.Day);
    }
    
        3
  •  3
  •   sashaeve    15 年前
    char[] array = "Mar10".ToCharArray();
    int index = 0;
    for(int i=0;i<array.Length;i++)
    {
       if (Char.IsNumber(array[i]){
          index = i;
          break;
       }
    }
    

    索引将指示拆分位置。

        4
  •  1
  •   Richard Erickson Snow R    9 年前
    var match = Regex.Match(yourString, "([|A-Z|a-z| ]*)([\d]*)");
    var month = match.Groups[1].Value;
    var day = int.Parse(match.Groups[2].Value);
    

    我在上面试过康拉德的答案,但当我把它输入regexplanet时,它并没有完全起作用。也 Groups[0 ]返回整个字符串 Mar10 .你想从 Groups[1] ,应该返回 Mar Groups[2] 应该返回 10 .