プロジェクトの問題点を解決するためにいくつかの反復

1. //反復(...)(...)(削除)

DEF parseTail(sqlContext:文字列):文字列= { 

  ヴァル事前= sqlContext.indexOf( "(")
  ヴァル端= sqlContext.indexOf( ")")

  であれば(前== -1 &&端== -1)
    を返すsqlContext 

  parseTail (+ 1)sqlContext.substring(0)、プリ+ sqlContext.substring(エンド)
} 

parseTail(SQL)

  

 

2.反復//(..(..)..)..(..)は、n-重量入れ子構造を削除

//迭代计算(个数
DEF parseIndexNum(S:文字列)のInt = { 
  IF(s.indexOf( "(")> s.indexOf( ")")|| s.indexOf( "(")== - 1)戻り0 
  戻りparseIndexNum(s.substring(s.indexOf( "(")+ 1))+ 1 
} 


//迭代删除()...()...()
DEF parseTail(sqlContext:文字列):列= { 

  ヴァル事前= sqlContext.indexOf( "(")
  VAR端= sqlContext.indexOf( ")")

  であれば(前== -1 ||端== -1)
    リターンsqlContext 

  VAR sqlCopy = sqlContext 
  ヴァルpre_count = parseIndexNum (sqlContext)

  IF(pre_count> 1){ 
    (0 pre_countまで- 1).foreach(_ => { 
      ヴァルインデックス= sqlCopy.indexOf( ")")
      sqlCopy = sqlCopy.substring(0、インデックス)+ "W" + sqlCopy.substring(インデックス+ 1)
    }) 
    端= sqlCopy。indexOf( ")") 
  }
  parseTail()、プリsqlContext.substring(0 + sqlContext.substring(エンド+ 1))

}

  

おすすめ

転載: www.cnblogs.com/ruili07/p/10964401.html