String类
更新: 2017/06/10
更新: 2017/06/23 puts()要空格可以直接不加参数
更新: 2017/08/17 增加rails引入的titleize
更新: 2017/12/06 增加gsub
更新: 2018/01/08 完善分割字符串方法 split
更新: 2018/02/26 子表格宽度不为100%的设为100%(只有一处, 置换)
                              删除过多的空tr
更新: 2019/04/04 补充gsub的用法
 
 生成  str = "test"
 str = 'test'
 str = %Q(...)  
    #="..."
 str = %q(...)  
    #='...'
 注: '...' 不解析内容(#{})
 输出  printf("", ...)
 sprintf("", ...)
区别: printf()输出到CMD
     
  sprintf()返回字符串

 %c  字符
 %s  字符串
 %p  p()的格式
 %b, %B  2进制
 %o  8进制
 %d, %i  10进制
 %x, %X  16进制
 %f  浮点数
 %e  浮点数
 科学计数法
 %%  %
 其他输出 print(),puts(),p()
puts()带换行,p()不分析内容,带换行
只要换行的话可以不带参数
插值 #{}
 获取长度   str.length
 str.size
 索引  参考Array
 连接字符串  str1 << str2
 str1.concat(str2)
 str1 += str2
 分割字符串  str.split(/:/)
 详细信息的传送门 
 去掉换行  str.chomp!()
 str.chomp()
删除最后一个字符
 str.chop()
 str.chop!()
 搜索  str.index("test")
 str.rindex("test")  从右边开始

str.include?(test) 只看是否包含

 置换

 str[n] 
 str[n..m], str[n...m]
 str[n, length]
 str.slice(...)
 str.slice(n)
str.slice(n, l)
 str.slice!(...)  
 方法

获取部分元素    str[n] 
 str[n..m], str[n...m]
 str[n, length] 
 str.slice(...)
 str.slice(n)
 str.slice(n, l)
 str.slice!(...)
 连接  str1 << str2
 str1.concat(str2)
 str1 += str2
 删除  str.delete(str)
 str.delete!(str)
 倒序  str.reverse()
 str.reverse!()
 去掉开头与结尾的空白  str.strip()
 str.strip!()
 大小写  str.upcase()
 str.upcase!()
 str.downcase()
 str.downcase!()
 大小写反向  str.swapcase()
 str.swapcase!()
 首字母大写,其他小写  str.capitalize()
 str.captilize!()
 置换部分文字  s.tr(origin, swap)
 s.tr!(origin, swap)
 文字代码  str.encode() 获取当前文字代码
 str.encode(str) 切换文字码
 nkf库  半角与全角的相互转换
 Rails导入

 生成标题  str.titleize
 自动创建合适的标题
 "model_year".titleize  
     
  Model Year 
 'ThisIsCamelType'.titleize  
 This Is Camel Type
   

 gsub
# 第二参数为字符串
gsub(pattern, replace) -> String
gsub!(pattern, replace) -> String
# 第二参数为hash 用value替换key
gsub(pattern, hash) -> String
gsub!(pattern, hash) -> self | nil
# 代码块
gsub(pattern) {|matched| .... } -> self | nil # 置换了返回self, 否则nil
gsub!(pattern) {|matched| .... } -> self | nil

● 参数

 pattern

字符串或者正规表现

 replace  字符串, 替代匹配到的所有子字符串
 hash

匹配到的字符串里的所有字符都作为key, 用value来替代

● 这种pattern必须为正规表现

hash = {'b'=>'B', 'c'=>'C'}
p "abcabc".gsub(/[bc]/){hash[$&]} #=> "aBCaBC"
p "abcabc".gsub(/[bc]/, hash) #=> "aBCaBC"
   
   
   

Ruby  String类的更多相关文章

  1. 标准库String类

    下面的程序并没有把String类的所有成员方法实现,只参考教程写了大部分重要的成员函数. [cpp] view plain copy #include<iostream> #include ...

  2. 自己实现简单的string类

    1.前言 最近看了下<C++Primer>,觉得受益匪浅.不过纸上得来终觉浅,觉知此事须躬行.今天看了类类型,书中简单实现了String类,自己以前也学过C++,不过说来惭愧,以前都是用C ...

  3. C++ string类的实现

    c++中string类的实现 今天面试被考到了, 全给忘记了!!!   //string类的实现 #include <iostream> #include <string.h> ...

  4. String类的功能

    String类              标红的为较少出现的 1.判断功能 boolean equals(Object obj) :比较字符串内容是否相同,区分大小写 boolean equalsIg ...

  5. java基础复习:final,static,以及String类

    2.final 1)为啥String是final修饰的呢? 自己答: 答案: 主要是为了“效率” 和 “安全性” 的缘故.若 String允许被继承, 由于它的高度被使用率, 可能会降低程序的性能,所 ...

  6. String类和StringBuffer类的区别

    首先,String和StringBuffer主要有2个区别: (1)String类对象为不可变对象,一旦你修改了String对象的值,隐性重新创建了一个新的对象,释放原String对象,StringB ...

  7. 05_整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明

    Question: 整理String类的Length().charAt(). getChars().replace(). toUpperCase(). toLowerCase().trim().toC ...

  8. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  9. String类常用方法

    1.String类的特点,字符串一旦被初始化就不会被改变. 2.String对象定义的两种方式 ①String s = "affdf";这种定义方式是在字符串常量池中创建一个Str ...

随机推荐

  1. 【electron系列之二】复制图片

    // 复制图片 ipcMain.on("copy",(event, arg) =>{ const imagePath = path.join(appPath, `page/i ...

  2. MongoDB学习day04--NodeJs操作数据库增删改查

    一.在Nodejs中使用Mongodb Nodejs需要引入的包 npm install mongodb --save -dev 或者使用镜像 cnpm install mongodb --save ...

  3. IE浏览器不能上传图片

    这时将弹出一个“安全设置-Internet选项”对话框,把右侧滚动条慢慢地往下拉. 找到“其他/将文件上载到服务器包含本地目录路径”点击下面的“启用”功能

  4. Android 自己定义UI文章汇总

    <Android ListView分类/分组效果 - 第一种实现方式> <Android ListView分类/分组效果 - 另外一种实现方式> <Android Lis ...

  5. Unable to connect to database server to retrieve database list; Arcgis 连接不上postsql库;

    在C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 目录下添加 pg依赖的插件 插件下载地址:

  6. LUA协程复用

    -----协程复用根函数 local function routine(fun, args) while (fun) do fun, args = coroutine.yield(fun(table. ...

  7. Vs2013在Linux开发中的应用(19): 启动gdb

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 1.1    载入调试引擎 因为我们无法干预VC的调试引擎载入.但能够侦听VC的调试引擎载入事件, ...

  8. HDU 5285 wyh2000 and pupil(dfs或种类并查集)

    wyh2000 and pupil Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Other ...

  9. NSUserDefaults 保存自己定义对象

    项目里json返回的一个model须要保存下来,这个model是固定的没必须去创建表,想到了NSUserDefaults来存储,暂不考虑安全问题. NSUserDefaults没法直接存储一个对象.在 ...

  10. 自定义的强大的UITableViewCell

    UITableView的强大更多程度上来自于可以任意自定义UITableViewCell单元格.通常,UITableView中的Cell是动态的,在使用过程中,会创建一个Cell池,根据每个cell的 ...