如何只获取整数并删除C#中的所有字符串[重复]

问题描述

||                                                                                                                   这个问题已经在这里有了答案:                                                      

解决方法

        
input = Regex.Replace(input,\"[^0-9]+\",string.Empty);
    ,        有四种不同的方法(可能更多,但我选择了这些方法)。 #1:来自Bala R的正则表达式
string output = Regex.Replace(input,string.Empty);
#2:来自Donut和agent-j的正则表达式
string output = Regex.Match(input,@\"\\d+\").Value;
#3:Linq
string output = new string(input.ToCharArray().Where(c => char.IsDigit(c)).ToArray());
#4:子字符串,要使此字符串起作用,破折号必须在数字和文本之间的字符串中。
string output = input.Substring(0,input.IndexOf(\"-\")).Replace(\" \",\"\");
使用这些输入:
string input1 = \"01 - ABCDEFG\";
string input2 = \"01 - ABCDEFG123\";
对于1和2,结果将是:
output1 = \"01\";
output2 = \"01123\";
对于3和4,结果将是:
output1 = \"01\";
output2 = \"01\";
如果预期的结果是获取字符串中的所有数字,请使用#1或#2,但是如果预期的结果是仅获取破折号之前的数字,请使用#3或#4。 在字符串如此短的情况下,#1和#2的速度大致相同,而#3和#4的速度相同,但是如果存在大量迭代,或者字符串长四倍或更多,则#2比#1快,并且#4比#3快。 注意:如果必须在字符串#4中包含括号,则必须对此进行修改,但这不会使其变慢:
string output = input.Substring(0,\"\").Replace(\"(\",\"\");
    ,        尝试这个:
Convert.ToInt32(string.Join(null,System.Text.RegularExpressions.Regex.Split(s,\"[^\\\\d]\")))
它返回整数值1。     ,        
string snum = System.Text.RegularExpression.Regex.Match(s,\"\\d+\").Value;
int num;
if (!int.TryParse(snum,out num))
  throw new Exception();
    ,        您应该使用正则表达式-它们是将文本字符串与某些模式进行匹配的一种非常有效的方法,这是使用它们的绝佳方案。 模式“
\\d+
\”将匹配1个或多个数字的序列。使用此模式从字符串中提取所有数字的简单方法如下:
public static List<int> ExtractInts(string input)
{
   return Regex.Matches(input,@\"\\d+\")
      .Cast<Match>()
      .Select(x => Convert.ToInt32(x.Value))
      .ToList();
}
因此,您可以像这样使用它:
List<int> result = ExtractInts(\"( 01 - ABCDEFG )\");
有关正则表达式的更多详细信息,请参阅本页(MSDN)或本页(有用的“备忘单”)。     ,        查看此博客文章:  http://weblogs.asp.net/sushilasb/archive/2006/08/03/How-to-extract-numbers-from-string.aspx 一个简单的程序,使用正则表达式从字符串中提取数字。
class Program
    {
    static void Main(string[] args)
    {
      Console.WriteLine(ExtractNumbers(\"( 01 - ABCDEFG )\"));    // 01
      Console.ReadLine();
    }

    static string ExtractNumbers(string expr)
    {
        return string.Join(null,System.Text.RegularExpressions.Regex.Split(expr,\"[^\\\\d]\"));
    }
}
希望这可以帮助!     ,        从字符串获取所有数字
string str = \"01567438absdg34590\";
            string result = \"\";

             result = Regex.Replace(str,@\"[^\\d]\",\"\");

            Console.WriteLine(result);
            Console.Read();
输出:0156743834590     ,        
Response.Write(Convert.ToDecimal(string.Join(null,System.Text.RegularExpressions.Regex.Split(TextBox1.Text,\"[^\\\\d .]\"))));
这适用于
int
decimal
号码。     ,        尝试这个:
string XYZ = string.Join(null,System.Text.RegularExpressions.Regex.Split(“XYZ  77”,“[^\\d]”));
    ,        您还可以使用这种方法来获取适当的答案。
string sentence = \"10 cats,20 dogs,40 fish and 1 programmer\";
 string[] digits= Regex.Split(sentence,@\"\\D+\");
             foreach (string value in digits)
             {
                 int number;
                 if (int.TryParse(value,out number))
                 {
                     Debug.Log(value);
                 }
             }
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...