字符串截取(记一次工作总结)

问题描述:车辆车牌号码的展示,杭州车牌电动车车牌前面都是杭州XXXXXXX,HBXXXXXXX,等等。现在客户要求根据电动二轮车,电动三轮车,车牌重新命名。比如电动二轮车,车牌号统一以数字2开头,组成纯7位数字;电动三轮车,车牌号同意以数字3开头,组成纯7位数字。

解决方法:原数据库表不动,重新建立一张数据库表,用来存储客户需要的车牌号码。通过字符串拼截取方法。

原来的车牌查询结果如图:
这里写图片描述

重新截取后结果,客户期望看到的结果:
这里写图片描述

具体步骤如下:
第一步在数据库中建立新的表

CREATE TABLE `cx_tracarnumber` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `carnumber` varchar(15) DEFAULT NULL,
  `username` varchar(15) DEFAULT NULL,
  `type` varchar(15) DEFAULT NULL,
  `deviceid` varchar(15) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

有两点需要注意的id 是主键,且id 是自增长的。

第二步:

@Controller
@RequestMapping(value="/admin")
public class TranslateCarnumberController {


    /**
     * 车辆基本信息
     */
    @Autowired
    Car_Service car_Service;

    @Autowired
    CxTracarnumberService cxTracarnumberService;

    @RequestMapping(value="/car/Trans_CarNumber")
    public void Trans_CarNumber(){
        CxTracarnumber cxTracarnumber = new CxTracarnumber();
        List<Car> tarList = car_Service.selectCarList();
        for (int i = 0; i <tarList.size(); i++) {
            // 车辆类型 含有 二 则为  截取号码为 数字2 开头使用
            if (tarList.get(i).getType().indexOf("二") != -1) {
//              System.out.println("车辆类型 含有 二 则为  截取号码为 数字2 开头使用");
                String carnumber = "2"+tarList.get(i).getCarnumber().substring(tarList.get(i).getCarnumber().length()-6);
                String username = tarList.get(i).getUsername();
                String type =tarList.get(i).getType();
                String deviceid = tarList.get(i).getDeviceid();
                String id = tarList.get(i).getId();
                cxTracarnumber.setCarnumber(carnumber);
                cxTracarnumber.setUsername(username);
                cxTracarnumber.setType(type);
                cxTracarnumber.setDeviceid(deviceid);
//              cxTracarnumber.setId(id+"");
                cxTracarnumberService.insertSelective(cxTracarnumber);
            }else{
                // 车辆类型 含有 三 则为  截取号码为 数字3开头使用
//              System.out.println("车辆类型 含有 三 则为  截取号码为 数字3开头使用");
                String carnumber = "3"+tarList.get(i).getCarnumber().substring(tarList.get(i).getCarnumber().length()-6);
                String username = tarList.get(i).getUsername();
                String type =tarList.get(i).getType();
                String deviceid = tarList.get(i).getDeviceid();
                cxTracarnumber.setCarnumber(carnumber);
                cxTracarnumber.setUsername(username);
                cxTracarnumber.setType(type);
                cxTracarnumber.setDeviceid(deviceid);
                cxTracarnumberService.insertSelective(cxTracarnumber);
            }

        }

    }


    // 判断一个字符串是否都为数字  
    public boolean isDigit(String strNum) {  
        return strNum.matches("[0-9]{1,}");  
    } 
}

注意:
这里先进行车辆类型的判断,如果车辆类型中包含二,则为二轮车,车牌号以数字2开头。同理则为三轮车,车牌以数字3开头。
这个是字符串的截取。通过for循环,先获取车牌号,然后截取车牌号的后六位,则转为目标车牌号码。

String carnumber = "2"+tarList.get(i).getCarnumber().substring(tarList.get(i).getCarnumber().length()-6);

最后将结果插入到数据库中。因为ID是自增长,所以不需要设置id。创建数据库表的时候,默认以1开始。

测试的时候执行该方法,可转为期望的结果。

《end》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值