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. mysql获取行号的方法

    1.不排序 语句: ) ) ) b,bigquestion 结果:  2.排序的 语句 ) ) ) b,bigquestion order by bigquestion.bigQuestionSequ ...

  2. linux命令2——进程相关

    (1)ps  -ef :可以看到内核的线程.

  3. Android操作系统架构

    Android操作系统架构   Android操作系统整体应用架构 Android系统架构和一些普遍的操作系统差不多,都是采用了分层的架构,从他们之间的架构图看,Android系统架构分为四个层,从高 ...

  4. 前端学习之-- JavaScript

    JavaScript笔记 参考:http://www.cnblogs.com/wupeiqi/articles/5602773.html javaScript是一门独立的语言,游览器都具有js解释器 ...

  5. HDU 5514 容斥原理

    Frogs Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submi ...

  6. [Bzoj1083][SCOI2005]互不侵犯king(状压dp)

    1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4595  Solved: 2664[Submit][ ...

  7. weblogic集群的资料

    博客分类: weblogic 其实网上关于weblogic集群的资料非常多[大部分都是从创建新的domain开始,我这篇先介绍怎么样把原本普通的domain改造为集群环境],如果觉得不够,可以啃web ...

  8. Deepin-安装QQ音乐(Windows程序)

    打开命令行,输入: sudo apt-get install wine 安装完成后,下载QQ音乐的安装包 然后安装 示例:wine xx.exe 实例:wine QQMusic.exe 安装完成,启动 ...

  9. 湘潭邀请赛——Alice and Bob

    Alice and Bob Accepted : 133   Submit : 268 Time Limit : 1000 MS   Memory Limit : 65536 KB  Problem ...

  10. 【Mongodb教程 第十一课 】MongoDB 聚合

    聚合操作过程中的数据记录和计算结果返回.聚合操作分组值从多个文档,并可以执行各种操作,分组数据返回单个结果.在SQL COUNT(*)和group by 相当于MongoDB的聚集. aggregat ...