SQL关键字转换大写核心算法实现

SQL关键字转换工具
本文介绍了一个用于将SQL语句中的关键字转换为大写的工具。该工具可以边转换边拼接SQL语句,确保非关键字部分不受影响。文章还分享了作者从需求分析到算法实现的心路历程。

1 不跟你多废话 上代码!

 View Code

 

2 原理

  第一步 :将一个SQL语句字符串拆开来,拆成 字符串-符号串-字符串-符号串-符号串-字符串 这样

  第二步 :然后判断字符串是不是关键字,是的话就转成大写

  第三部 :再将这些串拼起来

3 实现

  原理看似很简单,但实现却不简单。

  要处理两个问题

    1 不可能全转换之后再处理拼接,所以必须边拼接边转换

    2 状态切换,什么时候推送

  实现步骤

    1 源串打碎成char数组

    2 拼接 重点是判断 如何确定 字母和符号状态,以及在状态切换至将缓冲区推送。详情看代码

    3 最后要再做一次,因为遍历之后最后一个串没有机会被推送

4 使用效果

  

5 后记

  最近公司修改了SQL规范,要求SQL关键字大写,诶,我写了那么多没上线,都要改。作为一个程序员,这肯定是可以用代码来干的啊。

  于是,我动手百度!对我没有自己写,我懒。

  百到了一个工具,为了安全起见,我反编译了工具,看了看代码。没危险。但是啊,看不懂,功能倒是实现了。

  于是我就先用着把我的SQL都改了。

  但是我觉得,我看不懂啊,没学到。我想自己去实现!

  于是随后的几天我开始思索如何来将SQL关键字变大写,又不会影响其他的部分,包括回车换行这些不可见符号(就是不能用不可见符号做分割,因为如果有相连的不可符号,切割之后会丢失)。

  在公司的年会上

  我终于想到了,看着我身旁的妹子们(我同事),诶亚,好激动。

  利用闲暇时间,写了这个,独立的思考没有参考我找的的工具的代码。

  核心算法发出来,一起学习与交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值