Ruby学习.docx
《Ruby学习.docx》由会员分享,可在线阅读,更多相关《Ruby学习.docx(13页珍藏版)》请在冰豆网上搜索。
![Ruby学习.docx](https://file1.bdocx.com/fileroot1/2022-11/27/d45d2c4c-c36a-4332-975b-2e90f38429f1/d45d2c4c-c36a-4332-975b-2e90f38429f11.gif)
Ruby学习
Ruby的学习
主题:
入门
侯惠阳(PHPer.yang)www.imop.us
我个人认为学习Ruby要先从简单的开始了解,不能急于从Ralis入手。
Ralis框架和Ruby联系的很紧密,循序渐进才比较好掌握。
首先从字符串、数组、哈希、控制语句入手。
简单的说程序语言中的“字符串”就是一连串的字符。
建立空字符串:
1:
putsString.new、String.new('phper.yang')
2:
bl=“”
判断一个字符串是否为空
puts"".empty?
#输出true
输出字符串的长度
puts"phper.yang".length#10
puts"phper.yang".size#10
输出文本
t=<
php
ruby
python
p
putst
和PHP差不多
字符串链接
puts"hello,""rubyphper.yang"
puts"hello,"+"rubyphper.yang"
puts"hello,"<<"rubyphper.yang"
puts"hello,".concat"rubyphper.yang"
字符串截取用法
ttt="helloruby,phper.yang"
putsttt[8]#98
putsttt[8].chr#b
putsttt[8,15]#by,phper.yang
putsttt[8,15].capitalize#By,phper.yang
putsttt[0...8]#helloru
putsttt[/ruby/]#ruby
putsttt.index("r")#6
putsttt[ttt.index("y")]#121
putsttt[ttt.index("y")].chr#y
字符串比较
t='ruby'
tt='php'
putst.eql?
tt
字符串累加输出
puts"hello,yang"*3
在某一个字符串中在插入字符串
puts"ruby".insert5,"php"
替换某部分字符串
tt="ruby,php,java"
tt['java']='python'
putstt
chop、chop!
会去掉字符串最后的一个字符。
chomp、chmop!
则从字符串中摘除行尾的分隔符。
通常是换行符。
从字符串中删除某个字段
ttt='java,python,ruby,php,asp'
putsttt
putsttt.delete","
把逗号全部去掉了。
字符串的替换
t='ruby'
t='php'
putst
tt='java'
putstt.replace"python"
看看细微的东西
tt='ruby'
putstt.object_id
tt.replace'php'
putstt.object_id
反转字符串
tt='yang'
putstt.reverse
字符串转数组
i="phpruby".split(//)
i.eachdo|v|
putsv
puts'---'
end
数组转字符串:
sz=['php','ruby','python']
putssz.join("@")
遍历字符串
"ruby".each_byte{|v|printv,"/"}
"ruby".each_byte{|v|printv.chr,"/"}
字符串的大小写转换
t='PHP'
putst.downcase
putst.capitalize
putst.upcase
tt='phpRuBy'
putstt.swapcase
填补字符串空白
t='rubyphp'
putst.ljust20
putst.rjust20
putst.rjust(20,'-')
putst.center(20,'-')
递增字符串
t='ruby'
putst.next
putst.succ
puts2011.next
puts120.chr
puts120.chr.next
"a".upto("z"){|i|printi}
foriin"a".."z"
printi
end
强制转换
200.to_s#”250”有数字转换为字符串。
正则表达式过滤grep方法。
该方法不是String的方法。
tt=['python','java','php','ruby']
putstt.grep(/php/);
数组
建立一个新数组
t=Araay.new
t.clear#清除数组
t=[‘php’,’ruby’,’python’]
putst[0]#访问元素
据Ruby的资料说使用at会比较快点
putst.at(0)
putst.first#第一个元素
putst.last#最后一个元素
putst.index“php”#返回数组索引值。
简单初始化数组
a=Array(0..9)
putsa
aa=%w[2001200220032005200620072008200920102011]
putsaa
给数组添加元素
a=[2010]
a=[2010]
a<<2011<<2012
putsa
a.concat(q4)#也是链接两个数组
&交集
-差集
|并集
数组去重
a=%w[2012phpruby2012]
putsa.uniq!
入栈出栈
a=['php','ruby','python','java']
putsa.pop#出
putsa.push"asp"#入
在索引为0的地方插入asp元素
a=[‘php’,’ruby’,’python’]
a.insert(0,’asp’)
shiftunshift用法
a=['php','ruby','python']
putsa.shift
putsa.unshift('asp','c#')
delete和delete_at方法
a=['php','java','jsp']
a.delete('jsp')
a.delete_at(0)
putsa
二维数组转一维
a=[['php','html'],['python','phtml']]
putsa.flatten
哈希
哈希就是没有索引的键对值的集合。
在PHP中没有区分。
PHP中的数组分两种索引和关联数组。
建立空的哈希
a=Hash.new
添加元素
a=Hash.new‘php’
a=Hash.new(‘php’)
a={'one'=>'php','two'=>'ruby','three'=>'python'}
a={:
one=>'php',:
two=>'ruby',:
three=>'python'}
循环哈希
aa={:
one=>"php",:
two=>"ruby",:
three=>"python"}
fork,vinaa
puts"#{k}=>#{v}"
end
aa.eachdo|k,v|
puts"#{k}=>#{v}"
end
a={'a'=>'php','b'=>'ruby','c'=>'java'}
putsa.keys
putsa.values
和PHP中的array_keysarray_values是一样的。
a.values_ata,b,c#根据key值取得元素。
a.index“php”返回键值。
哈希的排序方法是a.sort.根据键值。
清除哈希的方法
a={'1'=>'php','2'=>'python','3'=>'java','4'=>'ruby','5'=>'c'}
putsa
putsa.delete(3)
putsa.delete_if{|key,value|value=='java'}
控制语句
If条件语句
res=''
ifres==nil
puts'resisnil'
else
puts'resisnonil'
end
3.times{puts"yang"}#yangyangyang
4.upto(6){|x|printx}#456
(1..8).each{|x|printx}#12345678
[1,2,3,4,5].each{|x|printx}#12345
[1,2,3].collect{|x|x*x}#1,4,9
(1..10).select{|x|x%2==0}#2,4,6,8,10
(1..10).reject{|x|x%2==0}#1,3,5,7,9
t='ruby'
caset
when"ruby":
puts"ruby"
when"php":
puts"php"
elseputs"python"
end
While
a=['php','ruby','asp','java','python']
tmp=[]
i=0
whileitmp<i+=1
end
tmp.sort
putstmp