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

如何在Java中从指定字符串提取double类型值31.0

提取字符串中key对应的Double值方案

首先你的原始字符串存在JSON语法错误,"value"字段内的内容应该修正为"30inch-33inch Shorts"才能成为合法JSON。以下提供两种可行的提取方案:

方案一:修复JSON后用专业解析库(推荐)

如果能修正字符串语法,用JSON解析库是最可靠的方式,以Java为例:

  1. 修正为合法JSON字符串:
String inseamStr = "{\"value\":\"30inch-33inch Shorts\",\"key\":\"31.0\"}";
  1. 使用org.json库解析:
import org.json.JSONObject;

public class ExtractKeyDouble {
    public static void main(String[] args) {
        String inseamStr = "{\"value\":\"30inch-33inch Shorts\",\"key\":\"31.0\"}";
        JSONObject jsonObj = new JSONObject(inseamStr);
        double keyValue = jsonObj.getDouble("key");
        // 此时keyValue就是31.0,可直接用于后续逻辑
    }
}

或使用Jackson库:

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class ExtractWithJackson {
    public static void main(String[] args) throws Exception {
        String inseamStr = "{\"value\":\"30inch-33inch Shorts\",\"key\":\"31.0\"}";
        ObjectMapper mapper = new ObjectMapper();
        JsonNode node = mapper.readTree(inseamStr);
        double keyValue = node.get("key").asDouble();
    }
}

方案二:正则表达式直接提取(适配未修正的错误字符串)

如果无法修正原始字符串的语法问题,可通过正则匹配"key":"([0-9.]+)"直接提取数值:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ExtractWithRegex {
    public static void main(String[] args) {
        String inseamStr = "{\"value\":\"30inch\"-33inch\" Shorts\",\"key\":\"31.0\"}";
        Pattern pattern = Pattern.compile("\"key\":\"([0-9.]+)\"");
        Matcher matcher = pattern.matcher(inseamStr);
        if (matcher.find()) {
            double keyValue = Double.parseDouble(matcher.group(1));
            // 得到31.0用于后续场景
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 06:15:33