如何从字符串中获取数字?

时间:2016-03-06 05:39:33

标签: c#

我有一些像-r这样的字符串。现在我希望从中获取数字name (1)并将数字存储到1变量中。 我不知道如何使用int

是否可以使用regex功能来创建它?

6 个答案:

答案 0 :(得分:2)

是的,您可以像这样使用Split

string str = "name (1)";
int result = int.Parse((str.Split(' ')[1])[1].ToString());//Output is 1

编辑:对于包含多个字符的数字,您可以使用TakeWhile,如下所示:

string str = "name (125)";
int res = int.Parse(new string(str.Split(' ')[1].Skip(1).TakeWhile(char.IsDigit).ToArray()));//Output is 125

请不要忘记将此using System.Linq;添加到您的using指令。

答案 1 :(得分:0)

using System.Text.RegularExpressions;

你可以这样做:

var s = "name (1)";
Match m = Regex.Match(s, @"\d+");
if(m.Success)
{
    int number = int.Parse(m.Value);
}

\d代表任何数字形式0 - 9. +至少匹配一个并且尽可能多。

答案 2 :(得分:0)

using System;
using System.Text.RegularExpressions;

public class Test
{
    public static void Main()
    {
        string str = "name (12345)";
        MatchCollection mc = Regex.Matches(str, "[0-9]+");
        int a = int.Parse(mc[0].ToString());
        Console.WriteLine(a);
    }
}

http://ideone.com/udkNfT

答案 3 :(得分:0)

如果您不想学习正则表达式,可以在一行中使用String.SubString,如下所示:

int value = Convert.ToInt32(mystr.SubString(mystr.IndexOf("(") + 1, mystr.IndexOf(")")));

但是,只有当您使用的字符串始终采用“name(1)”

格式时

答案 4 :(得分:-1)

在javascript中:

if (/.*\((\d+)\)/.test(input)) {
  value = parseInt(RegExp.$1, 10);
}

在其他语言中,您可以做类似的事情。 javascript最容易获得一个控制台,你没有指定。

。*意味着什么...... (意思是文字( \ d表示数字,周围(\ d +)表示组1或更多数字 然后结束)是文字)

答案 5 :(得分:-1)

OP标题更改的编辑帖子,您可以为C#

执行类似的操作
 int numVal = Int32.Parse("-105");
Console.WriteLine(numVal);

这将打印出-105