zoukankan      html  css  js  c++  java
  • SQL关键字转换大写核心算法实现

    1 不跟你多废话 上代码!

     View Code

    2 原理

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

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

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

    3 实现

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

      要处理两个问题

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

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

      实现步骤

        1 源串打碎成char数组

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

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

    4 使用效果

      

    5 后记

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

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

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

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

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

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

      在公司的年会上

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

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

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

  • 相关阅读:
    docker使用
    解决wps linux中文字体名字全是英文
    解决小程序云函数操作数据库回调不执行
    解决XP“不是有效Win32程序” 不是改Platform toolset
    [hdu1686] Oulipo【KMP】
    [poj 2104] K-th Number【主席树】
    bzoj2806 [Apio2012]dispatching【可并堆】
    bzoj1492 [NOI2007]货币兑换Cash【cdq分治】
    [coci2015-2016 coii] torrent【树形dp 二分】
    [coci2015-2016 coii] Palinilap【字符串 哈希】
  • 原文地址:https://www.cnblogs.com/chenliyang/p/6543627.html
Copyright © 2011-2022 走看看