zoukankan      html  css  js  c++  java
  • 字符串 驼峰 蛇形

    驼峰 转 蛇形

    CamelCase.camelize

     蛇形驼峰

    1. Rails的的ActiveSupport 加上下划线为以下几点:

    class String
     def underscore
     self.gsub(/::/, '/').
     gsub(/([A-Z]+)([A-Z][a-z])/,'1_2').
     gsub(/([a-zd])([A-Z])/,'1_2').
     tr("-", "_").
     downcase
     end
    end
    
    

    那么你可以做有趣的东西:

    "CamelCase".underscore
    
    



    2. 一个班轮ruby

    class String
     # ruby mutation methods have the expectation to return self if a mutation occurred, nil otherwise. (see  CodeGo.net 
     def to_underscore!
      gsub!(/(.)([A-Z])/,'1_2')
      downcase!
     end
    
     def to_underscore
      dup.tap { |s| s.to_underscore! }
     end
    end
    
    

    所以"SomeCamelCase".to_underscore # =>"some_camel_case"

    3. 下面是Rails如何做的:

     def underscore(camel_cased_word)
      camel_cased_word.to_s.gsub(/::/, '/').
      gsub(/([A-Z]+)([A-Z][a-z])/,'1_2').
      gsub(/([a-zd])([A-Z])/,'1_2').
      tr("-", "_").
      downcase
     end
    
    



    4. 接收器转换成蛇的情况下: 这是DataMapper的和Merb的支持库。 (

    def snake_case
     return downcase if match(/A[A-Z]+z/)
     gsub(/([A-Z]+)([A-Z][a-z])/, '1_2').
     gsub(/([a-z])([A-Z])/, '1_2').
     downcase
    end
    
    "FooBar".snake_case   #=> "foo_bar"
    "HeadlineCNNNews".snake_case #=> "headline_cnn_news"
    "CNN".snake_case    #=> "cnn"
    
    
  • 相关阅读:
    插入排序法
    二分查找
    排序算法
    牛客网 猜数游戏
    决策树及随机森林(笔记)
    knn的缺陷及改进
    区块链、比特币简易PYTHON实现版笔记
    B树,B+树,以及它们和数据库索引之间的关系
    Balanced Binary Tree
    Advantages & Disadvantages of Recursion
  • 原文地址:https://www.cnblogs.com/qinyan20/p/4211635.html
Copyright © 2011-2022 走看看