随笔分类 -  Ruby

摘要:正则表达式的功能有两个:检查匹配是否成功和回溯参照新建正则表达式对象的方式直接用”//“括起来/Marlon/.class #=> Regexp使用%r%r(Marlon) #=> /Marlon/“^”匹配开头,“$”匹配结尾正则表达式里加上“^”则表示匹配的字符串的开头需为“^”后面的字符正则表达式里加上“$”则表示匹配的字符串的开头需为“$”后面的字符/^ABC/ =~ "ABCMarlon" #=> 0 /ABC$/ =~ "MarlonABC" #=> 6 /^ABC$/ =~ "ABC" #=> 阅读全文
posted @ 2013-07-10 17:10 Jing5022 阅读(550) 评论(0) 推荐(0)
摘要:创建数组(%w)%w(one two tree four five)=> ["one", "two", "three", "four", "five"] # 数组元素都是String类型创建字符串(%Q,%q)name = "Marlon"%Q(My name is #{name}) # %Q生成的字符串是用双引号包含的,里面可以识别#{} => "My name is Marlon" %q(My name is #{name}) # %q生成 阅读全文
posted @ 2013-07-08 17:30 Jing5022 阅读(297) 评论(0) 推荐(0)
摘要:读取键或值hash.keyshash.valueshash.to_ahash.each { |key, value| ... }hash.each_keyhash.each_valuehash.each_pair #each方法的别名查询是否存在键或值hash.key?(key)hash.has_key?(key)hash.include?(key) # 只能用于查询键,不能用于查询值hash.member?(key) # 同上hash.value?(value)hash.has_value?(value)删除键或值hash.delete(key)hash.delete(key) ... 阅读全文
posted @ 2013-07-08 11:05 Jing5022 阅读(1358) 评论(0) 推荐(0)
摘要:分隔字符串str.split # 将字符串按空格分开,多个空格连在一个会被当成一个空格str.split(" ") # 同上str.split(/ /) # 按空格分隔字符串,一个空格就是严格的空格str.split("a") #已字符串中的"a"字符进行分隔删除字符的方法str.slice!(n)str.slice!(n..m)str.slice!(n, len)str.delete(e)大小写转换的方法str.upcase! # 将小写字母改变为大写,大写的字母则保持不变str.downcase! #将大写字母改变为小写,小写的字 阅读全文
posted @ 2013-07-07 23:15 Jing5022 阅读(716) 评论(0) 推荐(0)
摘要:ary.each { |e| ... }ary.each_index { |i| ... }ary.each_with_index { |e, i| ... } # e是数组元素,i是该元素对应的下标ary.map { |e| ... }ary.collect { |e| ... }ary.inject([]) { |result, element| ... }ary1.zip(ary2, ary3) # 将数组中下标相同的元素组成一个数组,并将这些数组作为新数组的元素返回,该数组的元素个数取决与ary1的元素个数(与之相等)1 a = [ 4, 5, 6 ]2 b = [ 7, 8, 9.. 阅读全文
posted @ 2013-07-07 16:15 Jing5022 阅读(537) 评论(0) 推荐(0)
摘要:ary1.concat(ary2) 将第二个数组的所有元素作为第一个数组的新元素插入到第一个数组的最后面,返回改变后的第一个数组,具有破坏性1 ary1 = [1,2,3]2 ary2 = [3,4,5]3 arr1.concat(ary2)4 => [1, 2, 3, 3, 4, 5] ary1 + ary2 将两个数组的所有元素加起来作为一个新数组返回,其中ary1的元素排在前面,不具破坏性1 ary1 = [1,2,3]2 ary2 = [3,4,5]3 ary1 + ary24 => [1, 2, 3, 3, 4, 5]ary1 | ary2 与数组的加法相似,区别是该方法 阅读全文
posted @ 2013-07-07 09:50 Jing5022 阅读(8840) 评论(0) 推荐(0)
摘要:插入元素的方法ary1.concat(ary2) # 将ary2的所有元素作为ary1的新元素插入到最后面,返回ary1,具有破坏性,作用的对象只能同时为数组或同时为字符串,与Js中的concat()差别较大ary.unshift(x) # 将x作为新元素插入到数组最前面ary.push(x) #将x作为新元素插入到数组最后面ary 3 } #对数组中的每个元素a进行测试,如果区块的执行结果为真,则从数组中将个元素删除,具有破坏性ary.reject! { |a| a > 3 } #同delete_ifary.reject { |a| a > ... 阅读全文
posted @ 2013-07-07 09:35 Jing5022 阅读(521) 评论(0) 推荐(0)
摘要:print能识别转义符不会自动换行返回值为nil1 print "Hello\nWorld"2 Hello3 World => nilputs能识别转义符会自动换行返回值为nil1 puts "Hello\nWorld"2 Hello3 World4 => nilp不能识别转义符会自动换行返回值为不为nil能识别输出的是字符串还是数字(如果是字符串,则输出结果带有双引号)输出双字节的字符(如汉字)时,输出对应二字节对应的数字,而不是字符1 p "Hello\nWorld"2 "Hello\nWorld" 阅读全文
posted @ 2013-05-10 10:32 Jing5022 阅读(386) 评论(0) 推荐(0)