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. iOS React Native 环境的搭建

    react native 的官网:http://reactnative.cn/docs/0.47/getting-started.html#content  --iOS如何搭建mac版的环境 1.配置 ...

  2. ionic 之 基本布局

    目录: 简介 Hybrid vs. Others ionic CSS框架 基本布局 布局模式 定高条块:.bar .bar : 位置 .bar : 嵌入子元素 .bar : 嵌入input 内容:.c ...

  3. how-do-i-access-windows-event-viewer-log-data-from-java

    https://stackoverflow.com/questions/310355/how-do-i-access-windows-event-viewer-log-data-from-java

  4. HDU——2119 Matrix

    Matrix Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  5. Intersection of Two Linked Lists(链表)

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  6. 使用微软的 ilasm 和 ildasm 对. net程序进行编译和反编译

    为了保证示例的完整性,请先准备好一个 c#写的 exe 程序,或者可以使用我提供的 exe 程序也可以(很简单,为了测试这里仅生成了一个带按钮的 winform,单击按钮提示弹窗) Test WinF ...

  7. 【c++】面向对象程序设计之继承中的类作用域

    当存在继承关系时,派生类的作用域嵌套在其基类的作用域之内. 一个对象.引用或指针的静态类型决定了该对象的哪些成员是可见的.即使静态类型与动态类型可能不一致,但我们使用哪些成员仍然是由静态类型决定的.基 ...

  8. 熊猫猪新系统測试之二:Mac OS X 10.10 优胜美地

    在第一篇windows 10技术预览版測试之后.本猫为大家呈现还有一个刚刚才更新的mac操作系统:"优胜美地".苹果相同一改以猫科动物为代号命名的传统.在10.9的Maverick ...

  9. 3.2.1 配置构建Angular应用——简单的笔记存储应用——编辑功能

    本节我们会接着上节课的内容,继续来完成使用Angular来创建简单的笔记存储应用,上一节课,我们完成了笔记的展示功能,本节课,我们来完成编辑功能. 编辑主要是两个功能:编辑现有的笔记以及创建新笔记.首 ...

  10. 多媒体开发之---h264 server rtsp

    (1)live555 (2)gstreamer http://code.openhub.net/search?s=rtsp%20server (3)srs (4)ffmpeg