1.数值类(Numeric)

  有理数:Rational(分子,分母)

  复数:Complex(实数,虚数)

  随机数:Rnadom   rand()  返回比1小的浮点数,rand(种子数)  返回0到该正整数之间的数值

  数值间的'_'会被忽略,如123_213=>123213

  循环计算:n.times{|i|}  循环n次,从0~n-1

       from.upto(to){|i|}  从from递增到to

         from.downto(to){|i|} 从from递减到to

       from.step(to,step){|i|}  从from按step变化到to

2.数值类

  1.创建 :可以使用%w创建不含空白的字符串数组,使用%i创建符号数组(ruby 2.0以后有效)

  2.索引的使用:a[n]  如果n为负数,从数组的末尾开始获取;如果n超过数组的长度,返回nil

      a[n..m]或者a[n...m]或者a.slice(n,m)获取从n到m的元素

      a[n,len] 获取从n开始的len个元素,a[n,0]=   在n的位置插入元素

      a.at(n)或者a.slice(n)  获取坐标为n的元素

  3.逻辑运算  arr1&arr2  获取两个集合中都有的元素并返回

         arr1|arr2  获取两个元素中所有的元素并返回

        arr1-arr2  获取在arr1中但不在arr2中的元素并返回

        arr1+arr2 获取两个数组中的所有元素(可能会有重复元素)

  4.操作:

    获取:first(获取头部),last(获取尾部)

    添加:unshift(添加头部),push(添加尾部等价于 数组<<元素)

    删除:shift(删除头部),pop(删除尾部),

       delete(删除元素),delete_at(n删除指定坐标的元素),

       delete_if{|item|}或者reject{|item|}或者reject!{|item|}删除符号条件的元素

       compact 删除所有的nil元素,uniq 删除数组中的重复元素

3.字符串

  1.可以使用%Q和%q创建,类似于""和''

  2.字符串可以像数组一样使用索引,可以使用<<或者concat扩展字符串

  3.chop删除字符串的最后一个字符,chomp如果最后一个字符是换行符则删除最后一个字符

  4.可以使用upcase(大写),downcase(小写),swapcase(大小写切换),capitalize(首字母大写,其他字母小写)

4.散列

  1.创建:{键1=>值1,键2=>值2,...}或者Hash.new(默认值)

  2.存取:

    方法一:可通过角标进行获取或设定

    方法二:通过store(键,值)进行设定,通过fetch(键){"不存在时的结果"}  

  3.迭代

    1.使用keys、values、to_a返回相应的数组

    2.使用each_key{|键|}、each_value{|值|}、each{|键,值|}进行迭代  

  4.键值判断

    1.判断是否存在指定的键:key?、has_key?、include?、member?

    2.判断是否存在指定的值:value?、has_value?

5.正则表达式

  1.创建:【/匹配模式/】或者【Regexp.new(匹配模式)】或者【%r(匹配模式)】或者【Regexp.quote(匹配模式)】(这种方式可以将匹配模式中的特殊字符进行转义)

  2.匹配字符串开头:【/^匹配模式/】或者【/A匹配模式/】

   匹配字符串结尾:【/匹配模式$/】或者【/匹配模式\z/】或【/匹配模式\Z/】(如果字符串末尾是换行符,则匹配换行符前一个字符)

     反向匹配:【/^匹配模式/】  表示匹配不符合匹配模式的字符串

   选择匹配:【/^(模式1|模式2)$/】   表示匹配模式1或者模式2

  3.匹配结果的捕获

    1./(模式1)(模式2)(模式3)/=~字符串   可以通过$1、$2、$3等形式的变量分别获取模式1、2、3对应的字符串,同可以通过【(?:模式)】给变量赋值时,省略该部分

    2.通过变量$`、$&、$' 分别获取匹配前的字符串、匹配部分的字符串、匹配后的字符串

  4.字符串中替换和查找

    1.字符串.sub(匹配模式,置换后的值)  置换首次匹配的部分

    2.字符串.gsub(匹配模式,置换后的值)  置换所有匹配的部分

    3.字符串.scan(匹配模式) do |matched|    处理的操作   end

      a、只能获取匹配部分的字符,不能进行替换操作

      b、如果正则表达式中有(),匹配部分以数组的形式进行返回

      c、如果没有指定块,直接返回匹配的字符串数组

    

ruby学习总结05的更多相关文章

  1. ruby 学习笔记 1

    写ruby blog  系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...

  2. Ruby学习心得之 Linux下搭建Ruby环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Ruby学习心得之 Linux下搭建Ruby环境1.前言2.Linux下安装Ruby环境 一 ...

  3. Ruby学习之mixin

    直接上代码: module Action def jump @distance = rand(4) + 2 puts "I jumped forward #{@distance} feet! ...

  4. ruby学习网站

    Ruby官方中文网(推荐): https://www.ruby-lang.org/zh_cn/ 国内非常不错的Ruby学习教程网站(推荐): http://www.yiibai.com/ruby Ru ...

  5. Ruby学习笔记4: 动态web app的建立

    Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...

  6. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  7. ruby学习笔记(1)-puts,p,print的区别

    ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...

  8. C++ GUI Qt4学习笔记05

    C++ GUI Qt4学习笔记05   qtc++正则表达式 QIntValidator           --  只让用户输入整数 QDoubleValidator     --  只让用户输入浮 ...

  9. Ruby学习资源汇总

    from:http://segmentfault.com/a/1190000000362058 Ruby 语言 Try Ruby: 无需在你的系统中安装.Ruby,只要通过浏览器便可立即体验 Ruby ...

随机推荐

  1. DDR(一)

    P-Bank:计算机早期的一个概念.目的:匹配内存芯片和CPU芯片的数据总线的宽度.方法:并联多个内存模块. L-Bank:对内部存储阵列的分割,避免寻址冲突,提高内存效率.通过ba信号选择bank, ...

  2. [php] PHPExcel插入图片

    其它的代码就不贴了,直接上关键代码: $objPHPExcel = new PHPExcel(); $objPHPExcel->setActiveSheetIndex(0); $objActSh ...

  3. MapReduce:详解Shuffle过程

    Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方.要想理解MapReduce, Shuffle是必须要了解的.我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑, ...

  4. php使用过滤器filter_var轻松验证邮箱url和ip地址等

    以前使用php的时候还不知道有过滤器filter这玩意,那时候判断邮箱.url和ip地址格式是否符合都是用正则表达式.后来随着使用的逐渐深入,才知道在php中也可以使用内置的函数库过滤器filter来 ...

  5. opencv常用数据结构之:IplImage

    typedef struct_IplImage{      int nSize; //IplImage大小      int ID; //版本(=0)      int nChannels; //大多 ...

  6. 创建数据库和表的SQL语句【转】

    创建数据库和表的SQL语句 转至http://www.cnblogs.com/philanthr/archive/2011/08/09/2132398.html 创建数据库的SQL语句: 1 crea ...

  7. 如何在图像处理工具包ImagXpress中对图像进行捕捉、复制和粘贴

    如何在在ImagXpress中进行图像的捕捉. 复制和粘贴呢?下面详细来看一下,在多种情况下,图和实现这些操作. 捕捉屏幕图像 捕捉通过ImageXView窗口绑定的屏幕范围,以及保存到一个Image ...

  8. mysql笔记04 MySQL高级特性

    MySQL高级特性 1. 分区表:分区表是一种粗粒度的.简易的索引策略,适用于大数据量的过滤场景.最适合的场景是,在没有合适的索引时,对几个分区进行全表扫描,或者是只有一个分区和索引是热点,而且这个分 ...

  9. Java的多线程+Socket 后台

    打包好可执行的jar文件之后, 用ftp上传到服务器, 用nohup命令, 让这个服务器在后台运行, 并将输出重定向到log文件中, 命令是: #nohup java -jar MTSServer.j ...

  10. Android BlueDroid(一):BlueDroid概述 【转】

    转自:http://blog.csdn.net/xubin341719/article/details/40378205 版权声明:本文为博主原创文章,未经博主允许不得转载. 关键词:bluedroi ...