代码之家  ›  专栏  ›  技术社区  ›  Michael Kniskern

从包含字母和空格的字符串中解析整数-C#

  •  6
  • Michael Kniskern  · 技术社区  · 16 年前

    例子: 我收到了以下字符串:“RC 272”。我想从字符串中检索272。

    我正在使用C#。NET 2.0框架。

    6 回复  |  直到 16 年前
        1
  •  9
  •   Gavin Miller    16 年前

    int.Parse(Regex.Match(yourString, @"\d+").Value, NumberFormatInfo.InvariantInfo);
    

    如果字符串可能包含多个数字,您可以使用相同的正则表达式遍历找到的匹配项:

    for (Match match = Regex.Match(yourString, @"\d+"); match.Success; match = match.NextMatch()) {
        x = int.Parse(match.Value, NumberFormatInfo.InvariantInfo); // do something with it
    }
    
        2
  •  19
  •   Lucero    16 年前

    由于字符串的格式不会改变 KISS :

    string input = "RC 272";
    int result = int.Parse(input.Substring(input.IndexOf(" ")));
    
        3
  •  2
  •   John Rasch    16 年前

    int value = 0;
    foreach (char c in yourString) {
      if ((c >= '0') && (c <= '9')) {
        value = value*10+(c-'0');
      }
    }
    
        4
  •  2
  •   Lucero    16 年前

    string s = "RC 272";
    int val = int.Parse(s.Split(' ')[1]); // val is 272
    
        5
  •  0
  •   Wil P    16 年前

    编辑:

    int someValue = Convert.ToInt32(value.Substring(value.IndexOf(' ') + 1));
    
        6
  •  0
  •   GP.    16 年前

    伙计们,既然它总是采用“ABC 123”的格式,为什么不跳过IndexOf步骤呢?

    string input = "RC 272";
    int result = int.Parse(input.Substring(3));
    
    推荐文章