今天在这里为大家介绍的内容是有关Ruby字符串的一些知识。希望初学Ruby的同学可以通过本文介绍的内容更深一步的了解这项语言的含义。#t#
1、Ruby字符串是8位字节的简单序列,字符串是String类的对象
注意转换机制(注意单引号与双引号的区别),如:
单引号中两个相连的反斜线被替换成一个反斜线,,一个反斜线后跟一个单引号被替换成一个单引号
'escape using "\\"' >> 转义为"\" 'That\'s right' >> That's right
2、Ruby字符串双引号支持多义的转义
"\n"
#{expr}序列来替代任何的Ruby表达式的值 ,(全局变量、类变量或者实例变量,那么可以省略大括号)
"Seconds/day: #{24*60*60}" >> Seconds/day: 86400 "#{'Ho! '*3}Merry Christmas" >> Ho! Ho! Ho! Merry Christmas "This is line #$." >> This is line 3
3、here document来创建一个字符串,end_of_string 为结束符号
aString = <<END_OF_STRING The body of the string is the input lines up to one ending with the same text that followed the '<<' END_OF_STRING
4、%q和%Q分别把Ruby字符串分隔成单引号和双引号字符串(即%q与%Q后面的符号具有',"的功能)
%q/general single-quoted string/ >> general single-quoted string
5、String 常用功能
String#split:把行分解成字段
String#chomp:去掉换行符
String#squeeze:剪除被重复输入的字符
String#scan:以指定想让块匹配的模式
/jazz/j00132.mp3 | 3:45 | Fats Waller | Ain't Misbehavin'
/jazz/j00319.mp3 | 2:58 | Louis Armstrong | Wonderful World
6、文件格式如上,要进行分解
songs = SongList.new
songFile.each do |line|
file, length, name, title = line.chomp.split(/\s*\|\s*/)#先chomp,后再分解,/\s*表示任字符
name.squeeze!(" ")#替换空格
mins, secs = length.scan(/\d+/)#这里用scan匹配模式
songs.append Song.new(title, name, mins.to_i*60+secs.to_i)