c# – 字符串分数加倍
发布时间:2020-12-15 04:14:00 所属栏目:百科 来源:网络整理
导读:我需要一个函数来解析用户输入的数字,以加倍.我无法做任何客户端或改变输入的方式. 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,我只是想知道是否有人知道
我需要一个函数来解析用户输入的数字,以加倍.我无法做任何客户端或改变输入的方式.
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |