java 统计xmind的结点数(测试用例case数)

mac电脑解压出来的xmind的数据主要在content.json上
开头结尾有[],里面是json

在这里插入图片描述
在这里插入图片描述

import org.json.JSONArray;
import org.json.JSONObject;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;public class XMindLeafCounter2 {public static void main(String[] args) {String xmindFilePath = "path/to/your/file.xmind"; // 替换为你的XMind文件路径try {// 解压XMind文件并提取content.json内容String jsonContent1 = extractContentJson(xmindFilePath);//System.out.println(jsonContent1);String jsonContent = removeOuterBrackets(jsonContent1);// System.out.println(jsonContent);JSONObject jsonObject = new JSONObject(jsonContent);int leafNodeCount = 0;// 遍历每个sheetJSONObject rootTopic = jsonObject.getJSONObject("rootTopic");leafNodeCount += countLeafNodes(rootTopic);System.out.println("Total leaf nodes: " + leafNodeCount);} catch (IOException e) {e.printStackTrace();}}public static String removeOuterBrackets(String str) {if (str == null || str.length() <= 1) {return str;  // 如果字符串为空或者长度小于等于1, 直接返回}// 使用substring去掉最外层的方括号if (str.startsWith("[") && str.endsWith("]")) {return str.substring(1, str.length() - 1);}return str;  // 如果没有匹配上最外层的中括号,直接返回原字符串}/*** 从XMind文件中解压并提取content.json的内容** @param xmindFilePath XMind文件路径* @return content.json文件内容字符串* @throws IOException 如果解压或读取文件失败*/private static String extractContentJson(String xmindFilePath) throws IOException {File xmindFile = new File(xmindFilePath);try (ZipInputStream zis = new ZipInputStream(new FileInputStream(xmindFile))) {ZipEntry entry;while ((entry = zis.getNextEntry()) != null) {if (entry.getName().equals("content.json")) {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int length;while ((length = zis.read(buffer)) != -1) {outputStream.write(buffer, 0, length);}zis.closeEntry();return outputStream.toString("UTF-8");}}}throw new FileNotFoundException("content.json not found in the XMind file.");}/*** 递归计算叶子节点数** @param topic JSON对象表示的主题节点* @return 叶子节点数*/private static int countLeafNodes(JSONObject topic) {if (topic.has("children")) {JSONObject children = topic.getJSONObject("children");if (children.has("attached")) {JSONArray attached = children.getJSONArray("attached");int count = 0;for (int i = 0; i < attached.length(); i++) {JSONObject child = attached.getJSONObject(i);count += countLeafNodes(child);}return count;}}// 如果没有子节点,则为叶子节点return 1;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PlatformIO开发环境

PlatformIO是一个开源的生态系统&#xff0c;用于构建物联网应用&#xff0c;它支持多种微控制器&#xff08;MCU&#xff09;和硬件开发板&#xff0c;并且与各种IDE集成良好&#xff0c;如VSCode, Atom等&#xff0c;使得跨平台的固件开发变得更加简单和高效。 ### 平台介绍…

博客建站1 - 选择博客系统框架

1. 本网站的系统架构2. 选择博客系统框架 2.1. 静态网站 2.1.1. 简介2.1.2. 特点2.1.3. 适用人群2.1.4. 常见框架 2.2. 动态网站 2.2.1. 简介2.2.2. 特点2.2.3. 适用人群2.2.4. 常见框架 3. 选择建议4. 我的博客系统 1. 本网站的系统架构 网站示例&#xff1a; sunlogging.c…

QEMU-aarch64与UEFI(EDK2)环境搭建

环境搭建是学习UEFI&#xff08;EDK2&#xff09;的重要前提&#xff0c;以下是基于QEMU-aarch64环境搭建UEFI&#xff08;EDK2&#xff09;的学习环境的过程&#xff1a; 安装虚拟机Ubuntu系统&#xff1a;首先需要在本地计算机上安装虚拟机软件&#xff0c;并在虚拟机上安装…

数据库自动备份到gitee上,实现数据自动化备份

本人有个不太好的习惯&#xff0c;每次项目的数据库都是在线上创建&#xff0c;Navicat 连接线上数据库进行处理&#xff0c;最近有一个项目需要二次升级&#xff0c;发现老项目部署的服务器到期了&#xff0c;完蛋&#xff0c;数据库咩了&#xff01;&#xff01;&#xff01;…

一篇文章教会你【elementUI搭建使用】

Element&#xff0c;一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组 件库. 安装 ElementUI npm i element-ui -S 在 main.js 中写入以下内容&#xff1a; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(Eleme…

微信小程序代码体积过大上传失败——分包处理

最近开发一款小程序&#xff0c;内容较多&#xff0c;导致代码体积太大&#xff0c;上传到线上失败 解决方案 分包处理 注意&#xff1a;tabbar的页面不能放到子包 具体操作 这里分两个包&#xff1a; 第一步 在根目录创建packageA、packageB 第二步 把原本的pages目录下的部…

【漏洞复现】金和OA 任意文件上传

【产品介绍】 金和OA协同办公管理系统C6软件&#xff08;简称金和OA&#xff09;&#xff0c;本着简单、适用、高效的原则&#xff0c;贴合企事业单位的实际需求&#xff0c;实行通用化、标准化、智能化、人性化的产品设计&#xff0c;充分体现企事业单位规范管理、提高办公效…

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩?举个例子你就彻底懂了!!

老生常谈问题之什么是缓存穿透、缓存击穿、缓存雪崩&#xff1f;举个例子你就彻底懂了&#xff01;&#xff01; 缓存穿透发生场景解决方案 缓存击穿解决方案 缓存雪崩发生场景解决方案 总结三者区分三者原因三者解决方案 想象一下&#xff0c;你开了一家便利店&#xff0c;店里…

Unity3D Text使用超链接跳转事件

系列文章目录 Unity工具 文章目录 系列文章目录&#x1f449;前言&#x1f449;一、第一种使用TextMeshPro加入超链接&#x1f449;二、继承Text组件,重载OnPopulateMesh方法&#x1f449;三.壁纸分享&#x1f449;总结 &#x1f449;前言 有时候会用到跳转的问题,所以添加一…

基于深度学习的轮廓匹配

基于深度学习的轮廓匹配 轮廓匹配是一种用于识别和定位图像中物体的技术&#xff0c;通过比较图像中的轮廓与已知模板轮廓的相似度&#xff0c;确定目标物体的位置和形状。基于深度学习的轮廓匹配方法结合了卷积神经网络&#xff08;CNN&#xff09;等深度学习技术&#xff0c…

【Python机器学习实战】 | 基于支持向量机(Support Vector Machine, SVM)进行分类和回归任务分析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

一个AI图片生成工具导航网站

上周末上线了一个AI图片生成工具导航网站&#xff0c;主要是面向AI图片工具这个垂直领域。 https://chatgpt-image-generator.com/ 目标是通过收集当下的一些工具&#xff0c;然后进行分类管理&#xff0c;一方面方便大家发现新的工具&#xff0c;另一方面能够更加有针对性、…

华为OceanStor磁盘阵列存储恢复出厂设置命令 LUN不处于在线状态,不能执行此操作解决方案

环境 OceanStor S2600T V2老版本 客户现场有一台Oceanstor 2600 V2的存储&#xff0c;因和另一台磁盘扩展框做了跨设备LUN需要进行配置清除&#xff0c;配置结束后需要重新划分存储空间并对接服务器&#xff0c;保证业务能够正常上线&#xff01;在清除配置回退的过程中&#…

深度学习二分类评估详细解析与代码实战

深度学习二分类的实战代码&#xff1a;使用 Trainer API 微调模型. https://huggingface.co/learn/nlp-course/zh-CN/chapter3/3 如果你刚接触 自然语言处理&#xff0c;huggingface 是你绕不过去的坎。但是目前它已经被墙了&#xff0c;相信读者的实力&#xff0c;自行解决吧。…

渗透第二次作业

cs与msf权限传递&#xff0c;以及mimikatz抓取win2012明文密码 1、准备三台虚拟机&#xff1a; 一台安装有cs的kali,网络模式为nat&#xff0c; 一台Win2012,有两张网卡&#xff0c;一张为NAT模式&#xff0c;一张为仅主机模式&#xff0c;分别对应内外网&#xff0c; 一台…

QT的TCP服务端与多客户端通信

目的 TCP通信可以说是最基础的东西了,也是面试经常问的问题,记得10年前,面试浪潮时,就是问的TCP连接的过程。 时间长了不用,感觉一些东西模糊了,基础的东西还是需要清晰的,而且,现在是QT的TCP,用法也有一些自己的特点。 这里主要说的就是服务端与多客户端的通信,这也…

G8 - ACGAN

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 目录 模型结构 模型结构 之前几期打卡中&#xff0c;已经介绍过GAN CGAN SGAN&#xff0c;而ACGAN属于上述几种GAN的缝合怪&#xff0c;其模型的结构图如下&a…

Python 中的抽象语法树

Abstract Syntax Trees in Python 注&#xff1a;机翻&#xff0c;未校对。 Requirement: All examples are compatible with at least Python v3.6, except for using ast.dump() with the attribute indent which has been added in Python v3.9. 要求&#xff1a;所有示例至…

如何检测和处理Android应用程序中的内存泄漏问题。

在Android开发中&#xff0c;内存泄漏是一个不容忽视的问题。它不仅会影响应用程序的性能&#xff0c;还可能导致应用崩溃&#xff0c;给用户带来不良体验。因此&#xff0c;作为开发者&#xff0c;我们必须了解如何检测和处理内存泄漏。下面&#xff0c;我将从技术难点、面试官…

结题阶段(2024年6月)

课题研究大事记 序号 时间 内容安排 负责人 备注 1 2022.4 课题审定会议 全体成员 2 2022.4 开题报告撰写 郭书艳 3 2022.4 课题申报 郭书艳 4 2022.5 课题立项报告会 郭书艳、陈晓忠 5 2022.6 课题推进安排会 俞峰 6 2022.7 当下课堂模式…