`
wangdeshui
  • 浏览: 256948 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一步一步学Ruby(十八):数组

阅读更多
一、数组定义和基本操作

     1. 数组的定义和其它语言一样,Ruby里的数组并不限定类型.

x=[1,2,3,4]
puts x[2]       #输出3
x[2]+=1
puts x[2]       #输出 4
x[2]="Jack"*3   #输出 JackJackJack
  2. 数组可以不设初始值,可以使用<< 和pop的操作,后进先出
x=[]
x<<"Jack"
x<<"Tom"
x<<"Crystal"
puts x[2]           #输出 Crystal
x.pop
puts x[x.length-1]  #输出 Tom

    3. 可以把数组连接在一起

x=["Jack","Better","Man"]
puts x.join
#输出 JackBetterMan
x=["Jack","Better","Man"]
puts x.join(', ')
#输出: Jack, Better, Man
  4. 字符串拆分为数组
puts "Jack is better man".scan(/\w/).join(",")
#输出 J,a,c,k,i,s,b,e,t,t,e,r,m,a,n
puts "www.cnblogs.com".split(/\./).inspect
#输出:["www", "cnblogs", "com"]
Insepct是显示一个对象的变量,用P也可以
http://blog.12spokes.com/articles/2008/03/15/
ruby-tip-stop-using-puts-object-inspect%E2%80%94use-p-instead
p "Jack Tom Crystal".split(/\s/)
#输出 ["Jack", "Tom", "Crystal"]
二、数组方法
  1.数组迭代
[1,"jack",2.0, 4].each{|x| print x.to_s+"!"}
#输出 1!jack!2.0!4!
  2.批量改变数组的值collect
p [1,"jack",2.0, 4].collect{|x| x*2}
#输出: [2, "jackjack", 4.0, 8]
  3.数组合并
a=[1,2,3]
b=["jack","crystal"]
c=a+b
p c
#输出: [1, 2, 3, "jack", "crystal"]
  4. 数组相减
a=[1,2,3,4,5]
b=[2,3]
c=a-b
p c
#输出 [1, 4, 5]
  5.检查数组是否为空
x=[]
puts "It's empty" if x.empty?
#输出: It's empty
  6.检查数组是否包含某值
x=[1,2,3]
puts x.include?("jack") 
#输出:false
puts x.include?(2)
#输出: true
  7.first和last存取元素
x=[1,2,3,4]
puts x.first
#output: 1
puts x.last
#output: 4
puts x.first(2).join("-")
#output: 1-2
puts x.last(2).join("-")
#output: 3-4
  8. 反转数组
x=[1,2,3,4]
puts x.reverse.inspect
#output:[4, 3, 2, 1]
本文作者:王德水
未经同意,禁止转载
分享到:
评论

相关推荐

    .一步一步学RUBY

    Ruby的标准类型包括数字、字符串、数组、哈希等,每种类型都提供了丰富的内置方法和操作符,简化了常见数据处理任务。 通过深入理解Ruby的基本特性和核心概念,初学者可以逐步掌握这门语言,利用其灵活性和强大功能...

    ruby数组

    在Ruby数组中,元素可以通过索引来访问和操作,索引通常从0开始。 ### 数组创建 Ruby提供多种创建数组的方法。最常见的是通过方括号`[]`来创建,例如: ```ruby arr = [1, 2, 3, "four", true] # 创建包含不同类型...

    linux版 ruby-2.3.0

    Ruby-2.3.0还在错误处理、字符串处理、数组和哈希操作等方面做了改进,使得编程体验更加流畅。学习和掌握这一版本的Ruby,将有助于开发者更好地利用这个强大的语言进行Web开发、自动化脚本编写、系统管理等各种任务...

    Ruby语言入门教程

    - **数组**:数组是Ruby中最常用的数据结构之一,可以存储不同类型的数据项。 - **字符串**:Ruby的字符串支持各种操作,包括拼接、分割、查找等。 - **正则表达式**:Ruby内置了强大的正则表达式引擎,可用于文本...

    ruby-jogging:ruby 的每日提交

    4. **闭包和上下文**:理解块、Proc和Lambda如何捕获并保留其定义时的上下文,是掌握Ruby高级特性的重要一步。 5. **元编程**:Ruby允许在运行时修改自身,这被称为元编程。例如,你可以动态添加方法、修改类的行为...

    24_ruby_algorithm_

    4. **数组操作**:在处理子数组时,Ruby 的数组方法如 `shift`、`pop` 和 `slice!` 可能会被用于取出或移除数组中的元素,以模拟操作扑克牌的过程。 5. **运算优先级**:在计算过程中,需要正确处理运算符的优先级...

    Algorithms-and-Data-Structures-in-Ruby:只是为了教育

    Ruby的数组支持多种操作,如插入、删除、查找和排序。 2. **哈希(Hash)**:键值对的集合,通过键来查找对应的值。Ruby的哈希是关联数组,提供了快速查找和修改的能力。 3. **链表(LinkedList)**:虽然Ruby内建...

    ruby-chess:用Ruby创建的国际象棋游戏

    在Ruby-chess中,AI可能会使用Minimax算法配合Alpha-Beta剪枝,来预测对手的可能走法,评估每一步棋的得分,从而做出最佳决策。 用户交互方面,Ruby-chess可能通过命令行界面(CLI)进行,用户输入棋步,程序解析并...

    ruby-tictactoe:Ruby中的Tic-Tac-Toe控制台

    在Ruby中,这通常可以通过二维数组实现,每个元素代表一个格子的状态(空、X或O)。 2. **游戏逻辑(Game Logic)**:游戏的核心在于验证每次移动的合法性以及检查游戏是否结束。这包括检查玩家的移动是否超出边界...

    ruby 知识总结

    块常用于迭代或与方法配合,如 `each`,允许用户自定义处理每一步的操作。 - **Procs**:Procs 是可以存储和传递的代码块,类似于函数对象。它们可以赋值给变量,作为参数传递,或者作为方法的返回值。`Proc.new` ...

    tic-tac-toe:尝试 Ruby

    3. **二维数组**:用数组来表示游戏棋盘,每一行和每一列都是一个数组元素,方便读取和更新棋盘状态。 4. **游戏逻辑**:实现游戏规则,包括检查是否有人获胜(行、列、对角线上的三个相同标记)或者游戏是否平局。...

    chessagain:通过国际象棋演练刷我的Ruby

    标题中的"chessagain"项目是一个使用Ruby编程语言开发的国际象棋应用,旨在通过实践来提升Ruby技能。描述中的“通过国际象棋演练刷我的Ruby”表明该项目以国际象棋游戏为背景,提供了一种寓教于乐的学习方式,帮助...

    Dijkstra最短路径算法在不同语言中的实现_Java_Ruby_下载.zip

    每一步,从优先队列中取出距离最小的节点,然后更新与之相邻的节点距离。当目标节点被访问或者优先队列为空时,算法结束。 在Java中实现Dijkstra算法,我们可以使用Java的`PriorityQueue`类作为优先队列,`...

    Learning C with gdb

    通常,习惯于使用Ruby、Scheme或Haskell等高级语言的开发者会怀念交互式编程环境(REPL),而C语言的编译-运行循环可能显得不太友好。不过,gdb可以作为一种伪REPL,帮助我们更有效地学习C语言。 首先,让我们了解...

    chess:The Odin Project的最终Ruby作业

    《棋:The Odin Project的最终Ruby作业》是学习Ruby编程语言的一个重要实践项目,它源自知名的在线编程教育平台The Odin Project。这个项目旨在通过构建一个完整的国际象棋游戏,帮助学员深入理解Ruby语言的核心概念...

    安卓学习路线

    - **Ruby on Rails**:高效开发Web应用,但需掌握Ruby语言。 ### 结论 成为专业的安卓开发者需要时间、耐心和持续的努力。尽管学习路径看似漫长且充满挑战,但通过系统性学习和实践,每个步骤都将变得清晰可行。...

    ruby_chess

    在Ruby中,棋盘通常被实现为二维数组,每个元素代表一个棋盘格子,可以放置不同的棋子。棋子则用类来表示,每个类都包含了棋子的属性(如颜色、位置)以及移动规则。这样的设计体现了面向对象编程的基本原则,使得...

    php数组函数array_push()、array_pop()及array_shift()简单用法示例

    在例子中,我们创建了一个名为`$stack`的数组,然后使用`array_push()`将"C#"和"Ruby"以及一个包含"jsp"和"Asp"的子数组添加到数组的末尾。运行结果显示,这些元素都被成功地添加到了数组的最后。 ```php $stack = ...

    简要说明Ruby中的迭代器

    在Ruby编程语言中,迭代器扮演着至关重要的角色,它们使得遍历集合(如数组和散列)变得简单而高效。迭代器是一个对象,它能够按照特定顺序访问集合中的每一个元素,...理解和熟练运用迭代器是掌握Ruby编程的关键一步。

    Chess:用Ruby编写的针对两个玩家或一个玩家针对简单AI命令行的国际象棋游戏

    棋盘可以使用二维数组或者更复杂的数据结构来表示,每个元素代表棋盘上的一个位置,存储对应位置的棋子信息。 对于AI的部分,本项目采用的是简单的AI策略。在命令行游戏中,AI通常不会有过于复杂的算法,可能会基于...

Global site tag (gtag.js) - Google Analytics