案例一:去掉数据库某列中的所有英文,利用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;
        }
相关文章
|
3天前
|
Java
JAVA易错点详解(数据类型转换、字符串与运算符)
JAVA易错点详解(数据类型转换、字符串与运算符)
17 4
|
3天前
|
并行计算 Java API
探索Java中的Lambda表达式:简化代码,提高可读性
【10月更文挑战第5天】Lambda表达式在Java 8中引入,旨在简化集合操作和并行计算。本文通过介绍Lambda表达式的基本概念、语法结构以及实际应用示例,展示了如何利用这一特性编写更加简洁、易读的代码。我们将从Lambda的基础入手,逐步深入到其在函数式接口中的应用,并探讨其对Java编程范式的影响。
|
3天前
|
Java
探索Java中的Lambda表达式
【10月更文挑战第5天】Lambda表达式是Java 8引入的一个新特性,它允许我们将功能作为方法参数,或者代码作为数据进行处理。这种表达式提供了一种简洁的表示匿名函数的方式,使得代码更加简洁易读。本文将深入探讨Lambda表达式的基本概念,使用方法,以及如何在Java程序中有效地应用它们。
7 1
|
4天前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
19 2
|
1天前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,
|
2天前
|
XML Java 数据格式
Java正则表达式大全(参考)
Java正则表达式大全(参考)
|
3天前
|
Java C#
Java的监听处理事件--小球移动案例
Java的监听处理事件--小球移动案例
6 0
|
4天前
|
缓存 算法 关系型数据库
Mysql(3)—数据库相关概念及工作原理
数据库是一个以某种有组织的方式存储的数据集合。它通常包括一个或多个不同的主题领域或用途的数据表。
23 5
Mysql(3)—数据库相关概念及工作原理
|
8天前
|
SQL 关系型数据库 MySQL
|
3天前
|
关系型数据库 MySQL 数据库
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
MySQL数据库基础(数据库操作,常用数据类型,表的操作)
22 5