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))
    
    }
    

      

  • 相关阅读:
    man arch
    封装 pyinstaller -F -i b.ico excel.py
    Python比较两个excel文档内容的异同
    运维工具
    python封装成exe
    OCP内容
    OCP
    操作系统
    转:铁大树洞APP视频讲解和原型演示
    2020.3.31——针对超能陆战队铁大树洞项目的匿名特点分析
  • 原文地址:https://www.cnblogs.com/ruili07/p/10964401.html
Copyright © 2011-2022 走看看