0
点赞
收藏
分享

微信扫一扫

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


文章目录

  • ​​前言​​
  • ​​一、问题描述​​
  • ​​二、解决方法​​
  • ​​1. 解决逻辑说明​​
  • ​​2. 利用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;
}


举报

相关推荐

0 条评论