当前位置:K88软件开发文章中心编程全书编程全书03 → 文章内容

Ruby 字符串(String)

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-11 12:58:18

为单个字符。如果没有给出参数,则所有相同的字符都被替换为单个字符。58str.squeeze!([other_str]*)与 squeeze 相同,但是 str 会发生变化并返回,如果没有变化则返回 nil。59str.strip返回 str 的副本,移除了前导的空格和尾随的空格。60str.strip!从 str 中移除前导的空格和尾随的空格,如果没有变化则返回 nil。61str.sub(pattern, replacement) [or]str.sub(pattern) { |match| block }返回 str 的副本,pattern 的第一次出现会被替换为 replacement 或 block 的值。pattern 通常是一个正则表达式 Regexp;如果是一个字符串 String,则没有正则表达式元字符被解释。62str.sub!(pattern, replacement) [or]str.sub!(pattern) { |match| block }执行 String





#sub 替换,并返回 str,如果没有替换执行,则返回 nil。63str.succ [or] str.next返回 str 的继承。64str.succ! [or] str.next!相当于 String





#succ,但是 str 会发生变化并返回。65str.sum(n=16)返回 str 中字符的 n-bit 校验和,其中 n 是可选的 Fixnum 参数,默认为 16。结果是简单地把 str 中每个字符的二进制值的总和,以 2n - 1 为模。这不是一个特别好的校验和。66str.swapcase返回 str 的副本,所有的大写字母转换为小写字母,所有的小写字母转换为大写字母。67str.swapcase!相当于 String





#swapcase,但是 str 会发生变化并返回,如果没有变化则返回 nil。68str.to_f返回把 str 中的前导字符解释为浮点数的结果。超出有效数字的末尾的多余字符会被忽略。如果在 str 的开头没有有效数字,则返回 0.0。该方法不会生成异常。69str.to_i(base=10)返回把 str 中的前导字符解释为整数基数(基数为 2、 8、 10 或 16)的结果。超出有效数字的末尾的多余字符会被忽略。如果在 str 的开头没有有效数字,则返回 0。该方法不会生成异常。70str.to_s [or] str.to_str返回接收的值。71str.tr(from_str, to_str)返回 str 的副本,把 from_str 中的字符替换为 to_str 中相对应的字符。如果 to_str 比 from_str 短,那么它会以最后一个字符进行填充。两个字符串都可以使用 c1.c2 符号表示字符的范围。如果 from_str 以 ^ 开头,则表示除了所列出的字符以外的所有字符。72str.tr!(from_str, to_str)相当于 String





#tr,但是 str 会发生变化并返回,如果没有变化则返回 nil。73str.tr_s(from_str, to_str)把 str 按照 String





#tr 描述的规则进行处理,然后移除会影响翻译的重复字符。74str.tr_s!(from_str, to_str)相当于 String





#tr_s,但是 str 会发生变化并返回,如果没有变化则返回 nil。75str.unpack(format)根据 format 字符串解码 str(可能包含二进制数据),返回被提取的每个值的数组。format 字符由一系列单字符指令组成。每个指令后可以跟着一个数字,表示重复该指令的次数。星号(*)将使用所有剩余的元素。指令 sSiIlL 每个后可能都跟着一个下划线(_),为指定类型使用底层平台的本地尺寸大小,否则使用独立于平台的一致的尺寸大小。format 字符串中的空格会被忽略。76str.upcase返回 str 的副本,所有的小写字母会被替换为大写字母。操作是环境不敏感的,只有字符 a 到 z 会受影响。77str.upcase!改变 str 的内容为大写,如果没有变化则返回 nil。78str.upto(other_str) { |s| block }遍历连续值,以 str 开始,以 other_str 结束(包含),轮流传递每个值给 block。String





#succ 方法用于生成每个值。字符串 unpack 指令下表列出了方法 String





#unpack 的解压指令。指令返回描述AString移除尾随的 null 和空格。aString字符串。BString从每个字符中提取位(首先是最高有效位)。bString从每个字符中提取位(首先是最低有效位)。CFixnum提取一个字符作为无符号整数。cFixnum提取一个字符作为整数。D, dFloat把 sizeof(double) 长度的字符当作原生的 double。EFloat把 sizeof(double) 长度的字符当作 littleendian 字节顺序的 double。eFloat把 sizeof(float) 长度的字符当作 littleendian 字节顺序的 float。F, fFloat把 sizeof(float) 长度的字符当作原生的 float。GFloat把 sizeof(double) 长度的字符当作 network 字节顺序的 double。gFloat把 sizeof(float) 长度的字符当作 network 字节顺序的 float。HString从每个字符中提取十六进制(首先是最高有效位)。hString从每个字符中提取十六进制(首先是最低有效位)。IInteger把 sizeof(int) 长度(通过 _ 修改)的连续字符当作原生的 integer。iInteger把 sizeof(int) 长度(通过 _ 修改)的连续字符当作有符号的原生的 integer。LInteger把四个(通过 _ 修改)连续字符当作无符号的原生的 long integer。lInteger把四个(通过 _ 修改)连续字符当作有符号的原生的 long integer。MString引用可打印的。mStringBase64 编码。NInteger把四个字符当作 network 字节顺序的无符号的 long。nFixnum把两个字符当作 network 字节顺序的无符号的 short。PString把 sizeof(char *) 长度的字符当作指针,并从引用的位置返回 \emph{len} 字符。 pString把 sizeof(char *) 长度的字符当作一个空结束字符的指针。QInteger把八个字符当作无符号的 quad word(64 位)。qInteger把八个字符当作有符号的 quad word(64 位)。SFixnum把两个(如果使用 _ 则不同)连续字符当作 native 字节顺序的无符号的 short。sFixnum把两个(如果使用 _ 则不同)连续字符当作 native 字节顺序的有符号的 short。UIntegerUTF-8 字符,作为无符号整数。uStringUU 编码。VFixnum把四个字符当作 little-endian 字节顺序的无符号的 long。vFixnum把两个字符当作 little-endian 字节顺序的无符号的 short。wIntegerBER 压缩的整数。X 向后跳过一个字符。x 向前跳过一个字符。ZString和 * 一起使用,移除尾随的 null 直到第一个 null。@ 跳过 length 参数给定的偏移量。实例尝试下面的实例,解压各种数据。"abc \0\0abc \0\0".unpack('A6Z6')





#=> ["abc", "abc "]"abc \0\0".unpack('a3a3')





#=> ["abc", " \000\000"]"abc \0abc \0".unpack('Z*Z*')





#=> ["abc ", "abc "]"aa".unpack('b8B8')





#=> ["10000110", "01100001"]"aaa".unpack('h2H2c')





#=> ["16", "61", 97]"\xfe\xff\xfe\xff".unpack('sS')





#=> [-2, 65534]"now=20is".unpack('M*')





#=> ["now is"]"whole".unpack('xax2aX2aX1aX2a')





#=> ["h", "e", "l", "l", "o"]

上一页  [1] [2] [3] 


Ruby 字符串(String)