You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何拆分目标字符串并提取数值存储至float类型变量?

提取字符串中数值并转为float类型的实现方法

核心思路

先拆分字符串获取键值对,提取数值部分后转换为float类型;也可通过正则表达式直接匹配所有数值内容,再完成类型转换。以下提供几种主流编程语言的实现方案:


C# 实现

  • 步骤:按逗号分割字符串得到单个键值对,再按冒号拆分提取数值,最后用float.Parse或float.TryParse完成转换
string s = "PH_Value:7.539999961853027,Nitrate:1.0099999904632568,DO:10.229999542236328,Conductivity:6777.990234375,TSS:43.65999984741211";
// 分割为单个键值对
string[] keyValuePairs = s.Split(',');

// 存储到列表
List<float> valueList = new List<float>();
foreach (var pair in keyValuePairs)
{
    string[] parts = pair.Split(':');
    if (parts.Length == 2 && float.TryParse(parts[1], out float num))
    {
        valueList.Add(num);
    }
}

// 单独存储到指定变量
float phValue = float.Parse(keyValuePairs[0].Split(':')[1]);
float nitrate = float.Parse(keyValuePairs[1].Split(':')[1]);
float doValue = float.Parse(keyValuePairs[2].Split(':')[1]);
float conductivity = float.Parse(keyValuePairs[3].Split(':')[1]);
float tss = float.Parse(keyValuePairs[4].Split(':')[1]);

Python 实现

  • 方案一:字符串分割法
s = "PH_Value:7.539999961853027,Nitrate:1.0099999904632568,DO:10.229999542236328,Conductivity:6777.990234375,TSS:43.65999984741211"
# 拆分后提取数值并转换
value_list = [float(pair.split(':')[1]) for pair in s.split(',')]

# 单独赋值给变量
ph_value, nitrate, do_value, conductivity, tss = value_list
  • 方案二:正则匹配法(直接提取所有数值)
import re
s = "PH_Value:7.539999961853027,Nitrate:1.0099999904632568,DO:10.229999542236328,Conductivity:6777.990234375,TSS:43.65999984741211"
# 匹配所有小数格式的数值
value_list = [float(num) for num in re.findall(r'\d+\.\d+', s)]

Java 实现

  • 步骤:分割字符串后提取数值部分,通过Float.parseFloat完成类型转换
public class ValueExtractor {
    public static void main(String[] args) {
        String s = "PH_Value:7.539999961853027,Nitrate:1.0099999904632568,DO:10.229999542236328,Conductivity:6777.990234375,TSS:43.65999984741211";
        String[] keyValuePairs = s.split(",");
        float[] values = new float[keyValuePairs.length];

        // 批量提取存储
        for (int i = 0; i < keyValuePairs.length; i++) {
            String[] parts = keyValuePairs[i].split(":");
            if (parts.length == 2) {
                values[i] = Float.parseFloat(parts[1]);
            }
        }

        // 单独存储到变量
        float phValue = Float.parseFloat(keyValuePairs[0].split(":")[1]);
        float nitrate = Float.parseFloat(keyValuePairs[1].split(":")[1]);
        float doValue = Float.parseFloat(keyValuePairs[2].split(":")[1]);
        float conductivity = Float.parseFloat(keyValuePairs[3].split(":")[1]);
        float tss = Float.parseFloat(keyValuePairs[4].split(":")[1]);
    }
}

内容的提问来源于stack exchange,提问作者Vinit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 03:55:31