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

编辑可变长度的字符串

  •  2
  • zsharp  · 技术社区  · 16 年前

           "####-somestring"
           "###-someotherstring"
           "######-anotherstring"
    
    5 回复  |  直到 16 年前
        1
  •  10
  •   Jimmy    16 年前
    int.parse( Regex.match(String, @"\d+").value)
    
        2
  •  3
  •   Femaref    16 年前
    string s =  "####-somestring";
    string digits = s.Substring(0, s.IndexOf("-") - 1);
    int parsedDigits = int.Parse(digits);
    

    对于更复杂的组合,您必须使用正则表达式。

        3
  •  2
  •   nbushnell    16 年前

    如果确定它们中始终包含“-”,则可以使用字符串拆分函数。

    string cutThisUp = "######-anotherstring";
    string[] parts = cutThisUp.Split(Convert.ToChar("-"));
    int numberPart = Convert.ToInt32(parts[0]);
    
        4
  •  1
  •   blparker    16 年前

    您可以使用以下内容:

    string s = "####-somestring";
    return Regex.Match(s, "(\d)+").Value);
    
        5
  •  1
  •   Dan Tao    16 年前

    还有另一种选择:在市场上拆分 - 字符并尝试解析结果数组中的第一项(这与nbushnell的建议相同,但增加了一点安全性):

    public bool TryGetNumberFromString(string s, out int number) {
        number = default(int);
    
        string[] split = s.Split('-');
        if (split.Length < 1)
            return false;
    
        return int.TryParse(split[0], out number);
    }