C#获取字母后的数字

此篇博客详细介绍了如何从包含特定字母的字符串中提取小数值,涉及的方法包括查找指定字符、计算数值长度、解析浮点数,并展示了get_z(), get_axis_坐标, 和 get_decimal() 函数的实现。
摘要由CSDN通过智能技术生成

        static public double get_z字母后Value(string inLine, char az)// 字符串  , 字母
        {
            // 1获取1行======================  "G0-00123.4567000"
            string str源数据 = inLine;
            // 2有效的数据===================
            if (str源数据.IndexOf(az) != -1)
            {
                int z_值长度 = 0;
                //  3 浮点数=============================================
                string zhi = str源数据.Split(az)[1];//  小数str
                foreach (char item in zhi)
                {
                    if (item >= '0' && item <= '9' || item == '.' || item == '-') ++z_值长度;
                    else break;
                }
                //  4 取出数值==========================================
                string val = zhi.Substring(0, z_值长度);
                double ret = double.Parse(val);
                return ret;
            }
            return -1.0;// 无效
        }

  public double get_AXIS_坐标2(string data)
        {//G0X9.896Y10.158Z1.000F10000
            g_指令 = (int)getNUM('G', data);
            f_速度 = (int)getNUM('F', data);
            x_坐标 = getNUM('X', data);
            y_坐标 = getNUM('Y', data);
            z_坐标 = getNUM('Z', data);
            e_坐标 = getNUM('E', data);
            a_坐标 = getNUM('A', data);
            b_坐标 = getNUM('B', data);
            c_坐标 = getNUM('C', data);
            return 0;
        }

 double getNUM(char key, string data)
        {//G0X9.896Y10.158Z1.000F10000
            string data1, data2;
            if (data.IndexOf(key) != -1)
            {
                data1 = data.Split(key)[1];//去头
                data2 = get_去尾(data1);//去尾
                return double.Parse(data2);
            }
            return -1;
        }

 static string get_去尾(string str)
        {
            for (int i = 0; i < str.Length; i++)
            {
                string num = str.Substring(i, 1);
                if (num == "-" ||num == "." ||
                     num == "0" || num == "1" || num == "2" || num == "3" || num == "4" ||
                     num == "5" || num == "6" || num == "7" || num == "8" || num == "9") { }
                else
                {
                    return str.Substring(0, i);
                }
            }
            return str;
        }

        static public double get_decimal(string data, char key)// 获取字母后的小数
        {//G0X-9.896Y10.158Z-1.000F10000
            string data1, data2;
            if (data.IndexOf(key) != -1)
            {
                data1 = data.Split(key)[1];//去头
                data2 = get_去尾(data1);//去尾
                try
                {
                    return double.Parse(data2);
                }
                catch (Exception)
                {
                    return -1.0;//错误
                }
            }
            return -1.0;
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值