c# – 字符串分数加倍

前端之家收集整理的这篇文章主要介绍了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 demohere’s another demo.

猜你在找的C#相关文章