当前位置: 首页 > news >正文

Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时,需要提出个别字段的值,通过正则表达式提取特定的数据

public static void main(String[] args) {//定义多个JSON对象字符串类型,假设每个对象有a,b,c 字段String strJson = "{\"a\":1.23,\"b\":45.67,\"c\":89.01},"+ "{\"a\":4.56,\"b\":78.90,\"c\":12.34}";// 定义正则表达式,用于匹配每个对象中的字段值,以下是匹配a,b,c 字段String regex = "\"a\":([\\d.]+),\"b\":([\\d.]+),\"c\":([\\d.]+)";//编译正则表达式,将正则表达式编译成模式对象。Pattern pattern = Pattern.compile(regex);//创建匹配器,用于在  strJson  字符串中查找匹配项。Matcher matcher = pattern.matcher(strJson);//定义集合List<String> dataA = new ArrayList<>();List<String> dataB = new ArrayList<>();List<String> dataC = new ArrayList<>();//循环查找每个匹配项while (matcher.find()) {//matcher.group(n) 提取匹配的值,其中n是捕获组的索引(索引从1开始)dataA.add(matcher.group(1));// 将提取的a数据项添加到列表中dataB.add(matcher.group(2));// 将提取的b数据项添加到列表中dataC.add(matcher.group(3));// 将提取的c数据项添加到列表中}// 输出提取的结果for (String s : dataA) {System.out.println("a的值:"+s);}System.out.println("-----分割线-----");for (String s : dataB) {System.out.println("b的值:"+s);}  System.out.println("-----分割线-----");for (String s : dataC) {System.out.println("c的值:"+s);}}

2、打印结果:

3、总结:

通过 Pattern 和 Matcher ,可以在字符串中查找和提取特定模式的数据。在处理 JSON 数据时,正则表达式可以是一个有用的工具,尽管在某些情况下,使用 JSON 解析库(如 Jackson 或 Gson)可能更为可靠和方便 

相关文章:

Java 在Json对象字符串中查找和提取特定的数据

1、在处理JSON数据时&#xff0c;需要提出个别字段的值&#xff0c;通过正则表达式提取特定的数据 public static void main(String[] args) {//定义多个JSON对象字符串类型&#xff0c;假设每个对象有a,b,c 字段String strJson "{\"a\":1.23,\"b\"…...

synchronized的特性

1.互斥 对于synchronized修饰的方法及代码块不同线程想同时进行访问就会互斥。 就比如synchronized修饰代码块时&#xff0c;一个线程进入该代码块就会进行“加锁”。 退出代码块时会进行“解锁”。 当其他线程想要访问被加锁的代码块时&#xff0c;就会阻塞等待。 阻塞等待…...

领域泛化与领域自适应

领域泛化&#xff08;Domain Generalization&#xff09;和领域适应&#xff08;Domain Adaptation&#xff09;是机器学习领域中处理不同数据分布场景下模型训练与应用的两种策略&#xff0c;领域泛化在泛化到目标领域时不需要进行调整&#xff0c;而领域自适应在适应到目标领…...

使用aspx,完成一个转发http的post请求功能的api接口,url中增加目标地址参数,传递自定义header参数

使用aspx&#xff0c;完成一个转发http的post请求功能的api接口&#xff0c;url中增加目标地址参数&#xff0c;传递自定义header参数 首先&#xff0c;简单实现一下&#xff0c;如何在ASPX页面中实现这个功能实现代码说明&#xff1a;注意事项&#xff1a; 然后进阶&#xff0…...

实际车辆行驶轨迹与预设路线偏离检测的Java实现

准备工作 本项目依赖于两个关键库&#xff1a;JTS Topology Suite&#xff08;简称JTS&#xff09;&#xff0c;用于几何对象创建和空间分析&#xff1b;以及GeoTools&#xff0c;用于处理坐标转换和其他地理信息任务。确保开发环境中已经包含了这两个库&#xff0c;并且正确配…...

从excel数据导入到sqlsever遇到的问题

1、格式问题时间格式&#xff0c;excel中将日期列改为日期未生效&#xff0c;改完后&#xff0c;必须手动单击这个单元格才能生效&#xff0c;那不可能一个一个去双击。解决方案如下 2、导入之后表字段格式问题&#xff0c;数据类型的用navicat导入之后默认是nvarchar类型的&a…...

Linux操作系统——Linux的磁盘管理系统、文件inode及软硬链接

目录 前言 一、磁盘 1、物理结构 2、存储结构 3、磁盘的逻辑结构 二、文件系统 1、基本概念 2、组的概念 1&#xff09;Data Blaocks 2&#xff09;inode Table 3&#xff09;inode Bitmap 4)Blocks Bitmap 5&#xff09;Group Descriptor Table 6&#xff09;Sup…...

算法刷题Day11: BM33 二叉树的镜像

点击题目链接 思路 转换为子问题&#xff1a;左右子树相反转。遍历手法&#xff1a;后序遍历 代码 class Solution:def Transverse(self,root: TreeNode):if root None:return rootnewleft self.Transverse(root.left)newright self.Transverse(root.right)# 对root节点…...

WPF+MVVM案例实战与特效(三十五)- 掌握 Windows 屏幕键盘控制的艺术(TouchKeyBoardHelper 类)

文章目录 1、概述2、TouchKeyBoardHelper 类1、代码实现2、代码解释3、实际应用1、帮助类库与文件创建2、项目引用运行效果3、答疑解惑1、概述 在WPF应用程序开发中,有时需要提供启动或关闭屏幕键盘(On-Screen Keyboard, OSK)的功能。为了实现这一需求,我们创建了一个名为…...

Python+OpenCV系列:绘制中文的方法

绘制中文的方法 方法一&#xff1a;使用Pillow&#xff08;PIL&#xff09;与OpenCV结合方法二&#xff1a;使用Matplotlib与OpenCV结合方法三&#xff1a;结合第三方库OpenCV-ZH注意事项 在Python中&#xff0c;使用OpenCV绘制中文需要处理字体加载问题&#xff0c;因为OpenCV…...

精品推荐 | StarLighter 1×dsDNA HS Assay Kit

关键词&#xff1a;核酸浓度测定&#xff0c;核酸定量检测试剂盒&#xff0c;dsDNA浓度测定&#xff0c;dsDNA定量检测 产品简介 StarLighter 1dsDNA HS Assay Kit是一种快速简便的双链DNA&#xff08;dsDNA&#xff09;荧光定量检测试剂盒&#xff0c;具有极高的检测灵敏度&…...

挑战用React封装100个组件【010】

Hello&#xff0c;大家好&#xff0c;今天我挑战的组件是这样的&#xff01; 今天这个组件是一个打卡成功&#xff0c;或者获得徽章后的组件。点击按钮后&#xff0c;会弹出礼花。项目中的勋章是我通过AI生成的&#xff0c;还是很厉害的哈&#xff01;稍微抠图直接使用。最后面…...

burp suite 5

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

锐捷Web认证

文章目录 Web认证二代 Web 认证配置 &#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;Datacom专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年12月6日11点40分 Web认证 Portal 认证、Web认证 Web认证的介绍 Web 认证使用浏览器进行身份验…...

【开源免费】基于Vue和SpringBoot的服装生产管理系统(附论文)

博主说明&#xff1a;本文项目编号 T 066 &#xff0c;文末自助获取源码 \color{red}{T066&#xff0c;文末自助获取源码} T066&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...

每日速记10道MySQL面试题16

其他资料 每日速记10道java面试题01-CSDN博客 每日速记10道java面试题02-CSDN博客 每日速记10道java面试题03-CSDN博客 每日速记10道java面试题04-CSDN博客 每日速记10道java面试题05-CSDN博客 每日速记10道java面试题06-CSDN博客 每日速记10道java面试题07-CSDN博客 每…...

云计算考试题

1、与SaaS不同的,这种“云”计算形式把开发环境或者运行平台也作为一种服务给用户提供。(B) A、软件即服务 B、基于平台服务 C、基于WEB服务 D、基于管理服务 2、云计算是对(D)技术的发展与运用 A、并行计算 B、网格计算 C、分布式计算 D、三个选项都是 3、Amazon.com公司…...

无人机理论考试合格证书获取

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 轻型民用无人驾驶航空器安全操控理论培训合格证明 前言无人机特性和应用场景 前言 无人机&#xff08;Drone&#xff09;是一种非常受欢迎的技术产品&#xff0c;广泛应用于…...

AcWing 3496. 特殊年份

文章目录 前言代码思路 前言 写简单题没啥。反正都是要写的&#xff0c;先把能拿到的分数拿了&#xff0c;之后有机会再去啃一啃硬骨头。啃不下来就算了。 代码 #include<bits/stdc.h> using namespace std; char a1[10],a2[10],a3[10],a4[10],a5[10]; int main(){cin…...

YOLOv8模型改进 第二十讲 添加三重注意力机制Triplet Attention 提升小目标/遮挡目标

本文这次分享的是三重注意力机制Triplet Attention。现在注意力机制在计算机视觉任务中被广泛研究和应用&#xff0c;如 Squeeze-and-Excitation Networks (SENet)、Convolutional Block Attention Module (CBAM) 等。然而&#xff0c;这些方法存在一些局限性&#xff0c;例如需…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信

文章目录 Linux C语言网络编程详细入门教程&#xff1a;如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket&#xff08;服务端和客户端都要&#xff09;2. 绑定本地地址和端口&#x…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...