zoukankan      html  css  js  c++  java
  • 项目中遇到的一些迭代解析问题

    1. // 迭代删除 ()...()...()

    def parseTail(sqlContext: String): String = {
    
      val pre = sqlContext.indexOf("(")
      val end = sqlContext.indexOf(")")
    
      if(pre == -1 && end == -1)
        return sqlContext
    
      parseTail(sqlContext.substring(0, pre) + sqlContext.substring(end + 1))
    }
    
    parseTail(sql)
    

      

    2. // 迭代删除 (..(..)..).. (..)  n重嵌套结构

    // 迭代计算 ( 个数
    def parseIndexNum(s: String): Int = {
      if (s.indexOf("(") > s.indexOf(")") || s.indexOf("(") == -1) return 0
      return parseIndexNum(s.substring(s.indexOf("(") + 1)) + 1
    }
    
    
    // 迭代删除 ()...()...()
    def parseTail(sqlContext: String): String = {
    
      val pre = sqlContext.indexOf("(")
      var end = sqlContext.indexOf(")")
    
      if (pre == -1 || end == -1)
        return sqlContext
    
      var sqlCopy = sqlContext
      val pre_count = parseIndexNum(sqlContext)
    
      if (pre_count > 1) {
        (0 until pre_count - 1).foreach(_ => {
          val index = sqlCopy.indexOf(")")
          sqlCopy = sqlCopy.substring(0, index) + "w" + sqlCopy.substring(index + 1)
        })
        end = sqlCopy.indexOf(")")
      }
      parseTail(sqlContext.substring(0, pre) + sqlContext.substring(end + 1))
    
    }
    

      

  • 相关阅读:
    jdk.exe转zip免安装
    jdk全版本下载链接
    Cesium primitive绘制折线和多边形
    sql调优的几种方式
    maven操作
    如何设计高并发系统?
    用友华表cell的程序发布
    OpenCV异常问题(一)
    js jquery window 高 宽
    sql中游标的使用一
  • 原文地址:https://www.cnblogs.com/ruili07/p/10964401.html
Copyright © 2011-2022 走看看