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关键字变大写,又不会影响其他的部分,包括回车换行这些不可见符号(就是不能用不可见符号做分割,因为如果有相连的不可符号,切割之后会丢失)。

      在公司的年会上

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

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

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

  • 相关阅读:
    linux 进入 GNOME X 界面
    POJ 3436 ACM Computer Factory (拆点+最大流)
    学习:EF(Entity Framwork)结构【转】
    .net上传Excel,解析Excel,导出CSV
    在Handler里面使用Session
    如何用JavaScript判断访问的来源是电脑还是手机,是什么浏览器?
    ASP.NET List泛型分页代码 【转】
    ASP.NET MVC中实现多个按钮提交的几种方法【转】
    清空数据库所有表,所有存储过程SQL语句
    可以不被浏览器拦截的弹出窗口
  • 原文地址:https://www.cnblogs.com/chenliyang/p/6543627.html
Copyright © 2011-2022 走看看