小菜鸟

java菜鸟号正在起航

汉语拼音转换工具 pinyin4j 实战:基础用法与多音字处理全指南

在中文数据处理场景中(如搜索推荐、排序、拼音检索),经常需要将汉字转换为汉语拼音。pinyin4j 是一款经典的 Java 拼音转换工具,支持全拼、简拼、声调标注等功能。本文将详细讲解 pinyin4j 的基础用法、多音字问题及解决方案,帮助你在实际开发中精准处理拼音转换需求。

pinyin4j 基础入门

引入依赖

pinyin4j 是开源工具,可通过 Maven 或 Gradle 引入项目:

Maven 依赖

<dependency>  
    <groupId>com.belerweb</groupId>  
    <artifactId>pinyin4j</artifactId>  
    <version>2.5.1</version>  <!-- 最新稳定版 -->  
</dependency>

Gradle 依赖

implementation 'com.belerweb:pinyin4j:2.5.1'

核心类与基础用法

pinyin4j 的核心功能通过 PinyinHelper 工具类实现,配合 HanyuPinyinOutputFormat 配置输出格式(如声调、大小写)。

基本拼音转换

将单个汉字转换为拼音(支持多音字返回多个结果):

阅读全文 »

带附件邮件发送全指南:基于 Spring 与 Apache Commons Email 的实现

在日常开发中,带附件的邮件发送是常见需求(如报表推送、文件共享等)。本文将详细讲解两种实现方式:Spring 的 MimeMessageHelper(适合 Spring 生态项目)和 Apache Commons Email(通用 Java 项目),包括依赖配置、核心代码、参数说明及常见问题解决,帮助你快速集成邮件附件功能。

技术选型对比

实现方式 优势 适用场景
Spring MimeMessageHelper 与 Spring 无缝集成,API 简洁,支持 HTML 内容 Spring Boot/SSM 项目
Apache Commons Email 轻量级,无 Spring 依赖,配置灵活 非 Spring 项目或简单 Java 应用

Spring 方式:使用 MimeMessageHelper

依赖配置

需引入 Spring 邮件相关依赖(适用于 Spring 项目):

<!-- Spring 邮件支持 -->  
<dependency>  
    <groupId>org.springframework</groupId>  
    <artifactId>spring-context-support</artifactId>  
    <version>4.3.29.RELEASE</version> <!-- 版本需与项目 Spring 版本匹配 -->  
</dependency>  

<!-- JavaMail 核心依赖 -->  
<dependency>  
    <groupId>com.sun.mail</groupId>  
    <artifactId>javax.mail</artifactId>  
    <version>1.6.2</version>  
</dependency>

核心代码实现

MimeMessageHelper 是 Spring 提供的邮件辅助类,支持附件、HTML 内容等功能:

阅读全文 »

POI操作EXCEL合并单元格详解

在使用 POI 处理 Excel 时,合并单元格是常见需求,比如制作表头、合并相同内容的单元格等。下面详细介绍如何通过 POI 实现单元格合并,并补充相关注意事项。

核心类与方法

POI 中合并单元格的核心类是 CellRangeAddress,通过它定义需要合并的单元格范围,再调用工作表的 addMergedRegion 方法完成合并。

  • CellRangeAddress 构造方法
    用于定义合并的单元格区域,参数含义如下:

    CellRangeAddress(int firstRow, int lastRow, int firstCol, int lastCol)
    • firstRow:起始行索引(从 0 开始)
    • lastRow:终止行索引(包含)
    • firstCol:起始列索引(从 0 开始)
    • lastCol:终止列索引(包含)
  • Sheet.addMergedRegion 方法
    将定义好的单元格范围添加到工作表中,完成合并:

    sheet.addMergedRegion(cellRangeAddress);

示例代码

以下是一个完整的示例,演示如何在 Excel 中合并单元格(以 XSSF 为例,适用于.xlsx格式):

maven依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
阅读全文 »

POI操作EXCEL插入图片:完整实现与优化技巧

在 Excel 中插入图片(如 Logo、二维码、报表图表)可增强文档的可视化效果。Apache POI 提供了灵活的图片插入功能,支持多种图片格式(PNG、JPG 等)和位置调整。本文将详细讲解插入图片的核心步骤、代码实现及常见问题解决方案。

核心原理与类

POI 插入图片的核心逻辑是:

  1. 将图片转为字节数组;
  2. 通过 Workbook.addPicture() 注册图片资源;
  3. 使用绘图对象(Drawing)将图片锚定到指定单元格位置。

关键类说明:

类名 作用描述
HSSFWorkbook/XSSFWorkbook 工作簿对象,提供 addPicture() 方法注册图片资源(返回图片索引)。
HSSFPatriarch/XSSFDrawing 绘图管理器,负责创建图片对象并关联到工作表。
ClientAnchor 图片锚点,定义图片在工作表中的位置(起始行列、偏移量等)。
Picture 图片对象,支持调整尺寸、获取图片信息等操作。

完整代码实现

以下示例支持 .xls(Excel 2003)和 .xlsx(Excel 2007+)格式,演示如何插入本地图片到指定单元格,并调整尺寸。

通用工具类(兼容两种格式)

maven依赖

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>
阅读全文 »

Xuggle 视频处理实战:轻量级视频元数据提取指南

在多媒体处理场景中,经常需要提取视频的基础信息(如宽高、时长、码率)。Xuggle 作为一款基于 FFmpeg 的 Java 多媒体框架,提供了简洁的 API 实现视频解析,相比直接使用 FFmpeg 命令行更适合集成到 Java 应用中。本文将详细讲解 Xuggle 的依赖配置、核心 API 及视频元数据提取实战,帮助你快速实现视频信息解析需求。

Xuggle 简介与优势

Xuggle 核心功能

Xuggle(发音为 “Ex-Ug-Lee”)是基于 FFmpeg 的 Java 封装库,支持:

  • 视频 / 音频文件的读写与转码;
  • 元数据提取(宽高、时长、码率等);
  • 视频帧捕获与处理;
  • 音频采样与分析。

为何选择 Xuggle?

  • 轻量易用:API 简洁,无需深入理解 FFmpeg 底层细节;
  • 功能聚焦:适合仅需元数据提取、简单转码的场景,避免引入 FFmpeg 全量依赖;
  • Java 原生集成:纯 Java 调用,无需额外部署 FFmpeg 可执行文件(依赖内置的 native 库)。

环境配置与依赖引入

Maven 依赖配置

Xuggle 官方 Maven 仓库已停止维护,需通过第三方仓库或手动安装依赖:

第三方仓库引入(推荐)
阅读全文 »
0%