案例一:去掉数据库某列中的所有英文,利用java正则表达式去做,核心:去掉字符串中的英文

简介: 这篇文章介绍了如何使用Java正则表达式从数据库某列中去除所有英文字符。

前言

记录一下开发中的小问题

一、问题描述

数据库中的某一列有中英文,如下:
在这里插入图片描述
要求删除FLAVOR_NAME这一列中的英文,如果只有几行就直接手冻了,但是有150行,再手动就太麻烦了,代码操作搞起

二、解决方法

1. 解决逻辑说明

  1. 先从数据库获取所有的ID和FLAVOR_NAME,为一个javabean 的listA集合。
  2. 然后新建一个listB集合;对listA集合遍历,对每一个Javabean 进行修改 flavorName 的值,进行去掉英文(一会儿讲),然后添加到listB集合
  3. 再对集合listB进行遍历,进行数据库的修改即可。

2. 利用java正则表达式去掉字符串中英文

去掉字符串的英文逻辑:

  1. 先将字符串变成字符数组
  2. 再对字符数组遍历
  3. 对每一个字符进行判断是否问英文(注意大小写)
  4. 再进行取舍操作。
  5. 去掉字符串中的英文代码案例如下:
    package com.adt.service.xfadvice.rpc;

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

    /**
     * @ClassName Test
     * @Description TODO
     * @Author admin
     * @Date 2021/3/11 9:42
     * @Version 1.0
     */
    public class Test {

        public static void main(String[] args) {
            String flavorName = "冯凡利&abcAsdfghfxxjSASAEFGBV";
            char[] chars = flavorName.toCharArray();
            StringBuffer stringBuffer = new StringBuffer();
            for (char c : chars) {
                Pattern p = Pattern.compile("[a-zA-Z]");
                Matcher matcher = p.matcher(String.valueOf(c));
                if (matcher.matches()) {

                } else {
                    stringBuffer.append(c);
                }
            }
            System.out.println(stringBuffer.toString());
            // 输出结果是: 冯凡利&
        }
    }

三、解决代码


        List<CoffeeFlavorCode> idAndFlavorNames = coffeeFlavorCodeMapper.getIdAndFlavorName();
        List<CoffeeFlavorCode> list = new ArrayList<>();
        for (CoffeeFlavorCode code : idAndFlavorNames){
            CoffeeFlavorCode coffeeFlavorCode = new CoffeeFlavorCode();
            coffeeFlavorCode.setId(code.getId());
            String flavorName = code.getFlavorName();
            char[] chars = flavorName.toCharArray();
            StringBuffer stringBuffer = new StringBuffer();
            for (char c : chars){
                Pattern p = Pattern.compile("[a-zA-Z]");
                Matcher matcher = p.matcher(String.valueOf(c));
                if (matcher.matches()){

                }else{
                    stringBuffer.append(c);
                }
            }
            coffeeFlavorCode.setFlavorName(stringBuffer.toString().trim());
            list.add(coffeeFlavorCode);
        }
        Integer count = 0;
        for (CoffeeFlavorCode code : list){
            int i = coffeeFlavorCodeMapper.updateCoffeeFlavorNameById(code);
            count +=i;
        }
相关文章
|
24天前
|
XML Java 数据库连接
性能提升秘籍:如何高效使用Java连接池管理数据库连接
在Java应用中,数据库连接管理至关重要。随着访问量增加,频繁创建和关闭连接会影响性能。为此,Java连接池技术应运而生,如HikariCP。本文通过代码示例介绍如何引入HikariCP依赖、配置连接池参数及使用连接池高效管理数据库连接,提升系统性能。
53 5
|
27天前
|
SQL 数据库 开发者
达梦数据库 【-6111: 字符串转换出错】问题处理
在更新数据库某个值属性时,遇到了“字符串转换出错”的错误。经过分析,发现是由于 `id` 字段实际上是字符串类型而非数值类型导致的。最终通过将 `id` 的值改为字符串类型解决了问题。此问题提醒我们在处理数据库时要仔细检查表结构,不要凭经验臆断字段类型。
|
25天前
|
Java
探索Java中的Lambda表达式
【10月更文挑战第37天】本文将带你深入理解Java的Lambda表达式,从基础语法到高级特性,通过实例讲解其在函数式编程中的应用。我们还将探讨Lambda表达式如何简化代码、提高开发效率,并讨论其在实际项目中的应用。
|
28天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
45 6
|
28天前
|
Java API
Java中的Lambda表达式与函数式编程####
【10月更文挑战第29天】 本文将深入探讨Java中Lambda表达式的实现及其在函数式编程中的应用。通过对比传统方法,我们将揭示Lambda如何简化代码、提高可读性和维护性。文章还将展示一些实际案例,帮助读者更好地理解和应用Lambda表达式。 ####
|
28天前
|
JSON 自然语言处理 Java
这款轻量级 Java 表达式引擎,真不错!
AviatorScript 是一个高性能、轻量级的脚本语言,基于 JVM(包括 Android 平台)。它支持数字、字符串、正则表达式、布尔值等基本类型,以及所有 Java 运算符。主要特性包括函数式编程、大整数和高精度运算、完整的脚本语法、丰富的内置函数和自定义函数支持。适用于规则判断、公式计算、动态脚本控制等场景。
|
1月前
|
Java API 开发者
Java中的Lambda表达式与函数式编程####
在Java的演变过程中,Lambda表达式和函数式编程的引入无疑是一次重大的飞跃。本文将深入探讨Lambda表达式的定义、用法及优势,并结合实例说明如何在Java中利用Lambda表达式进行函数式编程。通过对比传统编程方式,揭示Lambda表达式如何简化代码、提高开发效率和可维护性。 ####
|
1月前
|
jenkins Java 测试技术
如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例详细说明
本文介绍了如何使用 Jenkins 自动发布 Java 代码,通过一个电商公司后端服务的实际案例,详细说明了从 Jenkins 安装配置到自动构建、测试和部署的全流程。文中还提供了一个 Jenkinsfile 示例,并分享了实践经验,强调了版本控制、自动化测试等关键点的重要性。
66 3
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
47 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
58 2