C# · 12月 25, 2021

c# – 字符串分数加倍

我需要一个函数来解析用户输入的数字,以加倍.我无法做任何客户端或改变输入的方式. Input | Desired Output”9″ | 9″9 3/4″ | 9.75″ 9 1/ 2 ” | 9.5″9 .25″ | 9.25″9,000 1/3″ | 9000.33″1/4″ | .25

我看到这个post,但它使用Python,我只是想知道是否有人知道任何花哨的C#的方式来处理这个,我花时间写我自己的.

解决方法 我会用这个正则表达式: Regex re = new Regex(@”^\s*(\d+)(\s*\.(\d*)|\s+(\d+)\s*/\s*(\d+))?\s*$”);string str = ” 9 1/ 2 “;Match m = re.Match(str);double val = m.Groups[1].Success ? double.Parse(m.Groups[1].Value) : 0.0;if(m.Groups[3].Success) { val += double.Parse(“0.” + m.Groups[3].Value);} else { val += double.Parse(m.Groups[4].Value) / double.Parse(m.Groups[5].Value);}

未经测试,至今,但我认为它应该工作.

Here’s a demo和here’s another demo.