末尾解析数字

问题描述

| 鉴于:
Test123
Test 23
Test  456
有什么方法可以获取数字(在末尾)并放置在数字变量中?     

解决方法

var re = new Regex(@\"(\\d+)$\");
(new List<String>(new[]{
    \"Test123\",\"Test 123\",\"Test:123\"
})).ForEach(t =>
{
    var m = re.Match(t);
    Int32 n = Int32.Parse(m.Captures[0].Value);
    Console.WriteLine(\"{0} => Found: {1}\",t,n);
});
输出:
Test123 => Found: 123
Test 123 => Found: 123
Test:123 => Found: 123
演示:http://www.ideone.com/JGgEd     ,使用正则表达式(如
\\d+$
)-这将匹配字符串末尾的所有数字。     ,这是一种方法:
char[] nonZeroDigits = new char[] { \'1\',\'2\',\'3\',\'4\',\'5\',\'6\',\'7\',\'8\',\'9\' };
int numberStart = value.IndexOfAny(nonZeroDigits);
int result = 0;
if (numberStart != -1)
    int.TryParse(value.Substring(numberStart),out result);
    ,就像Oded所说的那样
int i = Regex.IsMatch(input,@\"\\d+$\") ? Convert.ToInt32(Regex.Match(input,@\"\\d+$\").Value) : 0;
    ,奥德的答案是好的。这是使用LINQ的非正则表达式答案:
string s = \"Test 123\";
string remainingNums = new string(s.SkipWhile(c => !Char.IsNumber(c)).ToArray());
int asInt = 0;
bool succeeded = int.TryParse(remainingNums,out asInt);
    ,您可以使用
Char.IsNumber
方法查找数字子字符串,然后可以使用
int.Parse
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...