沉梦听雨的编程指南 沉梦听雨的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)

沉梦听雨

时间是最好的浸渍剂,而沉淀是最好的提纯器🚀
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM
  • 新特性
  • 计算机网络
  • 操作系统
  • 数据结构与算法
  • 基础篇
  • MySql
  • Redis
  • 达梦数据库
  • Spring
  • SpringBoot
  • Mybatis
  • Shiro
  • 设计须知
  • UML画图
  • 权限校验
  • 设计模式
  • API网关
  • RPC
  • 消息队列
  • SpringCloud
  • 分布式事务
  • 云存储
  • 搜索引擎
  • 多媒体框架
  • 虚拟机
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • 随笔
  • 前端环境搭建
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 脚手架搭建
  • 瑞吉外卖
  • 黑马点评
  • vue-blog
  • 沉梦接口开放平台
  • 用户中心
  • 聚合搜索平台
  • 仿12306项目
  • 壁纸小程序项目
  • RuoYi-Vue
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
Github (opens new window)
  • Spring

  • SpringBoot

  • Mybatis

    • Mybatis基础知识小结
    • Mybatis映射文件解析
    • 获取中文字符串首字母
      • 依赖
      • 工具类
      • Mapper 接口
      • 测试方法
    • 计算分页数的几种方法
    • MP使用小记
  • Shiro

  • 常用框架
  • Mybatis
沉梦听雨
2024-03-19
目录

获取中文字符串首字母

# 获取中文字符串首字母

# 依赖

        <dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.1</version>
        </dependency>
1
2
3
4
5

# 工具类

import net.sourceforge.pinyin4j.PinyinHelper;

public class PinyinUtils {

    /**
     * 获取中文字符串的拼音首字母
     */

    public static String getInitial(String chinese) {
        if (chinese == null || chinese.length() == 0) {
            return "";
        }
        char firstChar = chinese.charAt(0);
        // 判断是否为中文字符
        if (Character.toString(firstChar).matches("[\\u4E00-\\u9FA5]+")) {
            // 使用 Pinyin4j 将中文转换为拼音数组
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(firstChar);
            if (pinyinArray != null && pinyinArray.length > 0) {
                // 提取拼音的首字母作为首字母字段的值
                return String.valueOf(pinyinArray[0].charAt(0)).toUpperCase();
            }
        }
        // 非中文字符,直接返回首字母的大写形式
        return String.valueOf(firstChar).toUpperCase();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

# Mapper 接口

    List<String> getName();

    void updateInitial(String name, String initial);
1
2
3

对应映射文件

    <update id="updateInitial">
        update t_area_info
        set initial = #{initial}
        where area_name = #{name}
    </update>
    <select id="getName" resultType="java.lang.String">
        SELECT area_name FROM `t_area_info`;
    </select>
1
2
3
4
5
6
7
8

# 测试方法

    @Test
    void testGetPinyin() {
        List<String> nameList = firmwareFunctionMapper.getName();
        HashMap<String, String> map = new HashMap<>();
        for (String e : nameList) {
            String initial = PinyinUtils.getInitial(e);
            map.put(e, initial);
        }
        System.out.println("===================");
        System.out.println("map = " + map);
        System.out.println("size = " + map.size());
        System.out.println("===================");
        for (String name : nameList) {
            String initial = map.get(name);
            firmwareFunctionMapper.updateInitial(name, initial);
        }
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
上次更新: 2024/9/25 11:16:13
Mybatis映射文件解析
计算分页数的几种方法

← Mybatis映射文件解析 计算分页数的几种方法→

Theme by Vdoing | Copyright © 2023-2025 沉梦听雨 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式