`
jsntghf
  • 浏览: 2555202 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

扩展string类

阅读更多

一、camelize

这个方法可以将字符串转成驼峰形式,并且可以将字符串中的/替换成::
将路径转换成命名空间时比较有用。

 

def camelize
   return self.gsub( /\/(.?)/ ) {
     "::" + $1.upcase
   }.
   gsub( /(^|_)(.)/ ) {
     $2.upcase
   }
end

 

"active_record".camelize #=> "ActiveRecord"
"active_record/errors".camelize #=> "ActiveRecord::Errors"

 

二、underscore

这是camelize的逆向转换
将命名空间转换成路径时比较有用。

 

def underscore
   return self.gsub( /::/, '/' ).
   gsub( /([A-Z]+)([A-Z][a-z])/, '\1_\2' ).
   gsub( /([a-z\d])([A-Z])/    , '\1_\2' ).
   tr( "-", "_" ).
   downcase
end

 

"ActiveRecord".underscore #=> "active_record"
"ActiveRecord::Errors".underscore #=> active_record/errors

 

具体如何将这两个方法加入模块中,可以参考在rails中如何加载自定义方法

分享到:
评论
1 楼 caryl 2009-12-03  
楼主可参考 module ActiveSupport::CoreExtensions::String的 camelize 和underscore 方法。

相关推荐

    C++扩展String类,可输出彩色字符串

    在压缩包的文件中,`MyCString输出彩色字符串-C++扩展String类`可能是包含了实现上述功能的源代码文件。通过查看这些源代码,我们可以深入理解`MyCString`类的具体实现细节,学习如何扩展C++的标准库类并实现自定义...

    XML反序列化扩展STRING类源码

    Xml反序列化扩展string类源码 源码描述: 该源码的目的是为了说明反序列化的Xml数据对象数据驻留在应用程序内存。 详细描述了实现泛型,单一的方法能够序列化多个对象类型 欢迎感兴趣的用户下载研究

    扩展String功能方法

    扩展String功能方法:一直好忙,没有时间写属于自己的东西,但是看着一天天不更新心情也不是个滋味,只有从网上收罗一些比较好的东东贴上。

    string-class:扩展String类方法的应用程序

    然而,由于JavaScript是动态类型的,我们无法直接扩展或继承原生的`String`类。但通过使用原型(prototype)或者ES6的类语法,我们可以模拟实现对`String`对象的扩展,从而自定义我们需要的功能。下面我们将深入探讨...

    c++string类函数原型借鉴.pdf

    本文主要介绍了C++中的字符串类函数原型借鉴,通过自定义的String类来实现字符串的操作。...通过对String类的实现,我们可以看到C++中的字符串操作的实现细节,并且可以根据实际情况进行修改和扩展。

    自己写的String类

    在C++编程语言中,`String`类是一个非常基础且重要的数据类型,它用于处理字符串。C++标准库提供了一个名为`std::string`的类,但在此案例中,我们讨论的是一个自定义的`String`类。创建自己的`String`类通常是学习...

    C#扩展string类型方法

    C#扩展string类型方法,查找该字符串中含有另一个字符串的个数

    String类运算符重载(采用动态内存分配)

    在C++编程中,`String`类是一种常用的自定义数据类型,用于表示字符串。运算符重载是C++中的一项重要特性,它允许我们为已有的运算符赋予新的含义,以便在自定义类中使用这些运算符。在这个场景中,我们将讨论如何为...

    string 类及所有的方法(c++)

    C++的string类提供了一系列方便的成员函数,用于处理和操作字符串。 2.1 C++字符串和C字符串的转换 string类可以方便地与C风格的字符数组进行转换。例如,你可以使用.c_str()成员函数将string对象转换为C风格的...

    自定义String类

    这个简单的`String`类实现了一些基本功能,但还有很多可以扩展的地方。例如,可以添加`+`运算符重载来支持字符串连接,添加`substr`方法截取子字符串,或者添加查找特定字符或子串的方法。此外,还可以考虑添加迭代...

    C++重写String类

    一、为什么要重写String类? 1. **定制功能**:标准库的`std::string`可能不满足某些特定需求,如特定的内存管理策略、额外的成员函数或操作符重载。 2. **教学目的**:通过实现自己的字符串类,可以更好地理解字符...

    javascript string和array常用扩展方法

    javascript string和array常用扩展方法

    String类的重写 C++

    然而,有时候根据特定需求,我们可能需要自定义一个类似于`std::string`的类来扩展或重写其功能。在本篇中,我们将探讨如何重写`String`类,实现其基本模块,并讨论在面试中常见的与`String`类相关的问题。 首先,...

    StringExtension帮助类

    "StringExtension帮助类"是专门用于扩展`System.String`类功能的一组自定义方法,使得字符串操作更为便捷。这些扩展方法通常包含在静态类中,以便在任何需要的地方使用。在提供的文件`StringExtension.cs`和`String...

    StdString类代码,可完善替代CString字符串类.rar

    StdString类的核心设计理念是对C++标准模板库(STL)中的std::string进行扩展和优化,以适应VC++的开发环境。STL的std::string虽然强大,但在某些特定情况下,如频繁的字符串操作或者需要与MFC库配合时,可能会显得...

    StdString类代码,可完善替代CString字符串类

    标题提到的`StdString`类是一个针对VC++环境设计的自定义字符串类,旨在提供一个比原生`CString`类更完善的功能集。`CString`是Microsoft MFC(Microsoft Foundation Classes)库中的一个类,用于处理动态字符数组,...

    String封装工具类

    它包含在`commons-lang3-3.0-beta.jar`中,这是一个开源项目,提供了大量对Java内置类的扩展。 Apache Commons Lang中的StringUtils类提供了大量静态方法,这些方法可以极大地方便我们处理字符串。例如,`isEmpty()...

    qt 自定义String 类

    本文将深入探讨如何在Qt中自定义一个`String`类,即`MyString`,以及它与标准C++中的`std::string`的区别和联系。 首先,`MyString`类的设计可能是为了提供一种更符合Qt编程风格的方式来处理字符串。在C++标准库中...

    asp.net c# String类添加按字节截取字符串的扩展方法

    本文将详细介绍如何为C#中的`String`类添加一个扩展方法,该方法允许我们按照字节而非字符来截取字符串。这在处理包含多字节字符(如中文或特殊符号)的字符串时尤为重要。 ### 扩展方法的背景与需求 在默认情况下...

    colorize:Ruby字符串类扩展。 它添加了一些方法来使用ANSI转义序列更容易地在控制台上设置颜色,背景色和文本效果

    扩展String类或使用设置文本颜色,背景颜色和文本效果的方法添加ColorizedString 。 模式 require 'colorize'扩展String类 require 'colorized_string'添加ColorizedString类 产品特点 更改字符串颜色 更改字符串...

Global site tag (gtag.js) - Google Analytics