ruby学习笔记-基础数据类型
2018-01-03 00:00
274 查看
摘要: ruby数据类型 整型、浮点型、字符串
ruby支持的数据类型包括基本的Number,String,Ranges,Symbols,以及true、false和nil这几个特殊值。
同时还有两种重要的数据结构Array和Hash。
1.数值类型(Number)
1.1整型:整型分为两种,如果在31位以内(4字节),那为Fixnum实例;如果超过,即为Bignum实例。
Fixnum:-2^30 到 2^30-1
前导符号:0对应octal(八进制),0x对应hex(十六进制),0b对应binary(二进制)
下划线字符在数字字符串中被忽略。
ASCII字符或一个用问号标记的转义序列的整数值。
2.浮点型
ruby支持浮点数,它们是带有小数的数字。浮点数是类Float的对象,且可以是下列中任意一个。
3.算术操作
加减乘除:+-*/;指数操作为:**,指数不必为整数
4.字符串类型
ruby字符串简单地说是一个8位字节序列,它们是类String的对象,用于存储或操作一个或多个字节的序列。
ruby字符串分为单引号字符串''和双引号字符串"",区别在于双引号字符串能够支持更多的转义字符。
双引号标记的字符串允许替换和使用反斜线符号,单引号标记的字符串不允许替换,且只允许使用\\和\'两个反斜线符号
4.1 如果需要在单引号字符串内使用单引号字符,那么需要在单引号字符串使用反斜杠\,这样ruby解释器就不会认为这个单引号字符是字符串的终止符号。
反斜杠也能转义另一个反斜杠,这样第二个反斜杠本身不会解释为转义字符。
在双引号字符串中可以使用序列#{ expr } 替换任意ruby表达式的值为一个字符串
4.2 字符串中进行数学运算
4.3 ruby还支持一种采用%q和%Q来引导的字符串变量,其中%q使用的是单引号引用规则,而%Q是双引号引用规则。
格式:%q(ruby 的字符串可以使用""和''。)
跟在q或Q后面的字符是分界符,分界符可以是任意一个非字母数字的单字节字符,如:[,{,(,<,!等,字符串会一直读取到发现相匹配的结束符为止。
4.3 反斜线符号
4.4 字符编码
ruby的默认字符集是ASCII,字符可以用单个字节表示。如果使用utf-8或其他现代的字符集,字符可能是用1-4个字节表示。可以在程序开头使用$KCODE改变字符集:$KCODE = 'u'
4.5 字符串创建方法new
字符串的其他方法:
4.5.1 str % arg
使用格式规范格式化字符串。如果arg包含一个以上的替代,那么arg必须是一个数组。
4.5.2 str * integer
返回一个包含integer个str的新的字符串,也就是str被重复了integer次
4.5.3 str + other_str
拼接other_str到str
4.5.4 str << obj
连接一个对象到字符串,如果对象是范围为0-255之间的固定数字Fixnum,则它会被转换成一个字符。
4.5.5 str <=> other_str
把str与other_str进行比较,返回-1(小于)、0(等于)或1(大于),比较区分大小写。
4.5.6 str == obj
检查str和obj的相等性。如果obj不是字符串,则返回false
4.5.7 str =~ obj
在obj中根据正则表达式匹配str,返回匹配开始的位置,否则返回false。
4.5.8 str.capitalize
把字符串转换为大写字母显示。
4.5.9 str.capitalize!
与capitalize相同,但是str会发生变化并返回。
4.5.10 str.casecmp
不区分大小写比较字符串
4.5.11 str.center
居中字符串。
4.5.12 str.chomp
从字符串末尾移除记录分隔符,通常是\n,如果没有记录分隔符,则不进行任何操作。
4.5.13 str.chomp!
与chomp相同,但是str会发生变化并返回。
4.5.14 str.chop
移除字符串中的最后一个字符
4.5.15 str.chop!
与chop相同,但是str会发生变化并返回。
4.5.16 str.concat(other_str)
连接other_str到str.concat
4.5.17 str.count(str,...)
给一个或多个字符集计数。如果有多个字符集,则给这些集合的交集计数。
4.5.18 str.ctypt(other_str)
对str应用单向哈希加密,参数是两个字符长的字符串,每个字符的范围为a-z,A-Z,0-9, .或/ 。
4.5.19 str.delete(other_str,...)
参数交集中的所有字符会被删除
4.5.20 str.delete!(other_str,...)
与delete相同,但是str会发生变化并返回。
4.5.21 str.downcase
返回str.downcase的副本,所有的大写字母会被替换为小写字母
4.5.22 str.downcase!
与downcase相同,但是str会发生变化并返回
4.5.23 str.dump
返回str的副本,所有的非打印字符被替换为\nnn符号,所有的特殊字符被转义
4.5.24 str.each(separator=$/){ |substr|block }
使用参数作为记录分隔符,默认是$/,分隔str,传递每个子字符串给被提供的block
4.5.25 str.each_byte{|fixnum|block}
传递str的每个字节给block,以字节的十进制表示法返回每个字节
4.5.26 str.each_line(separator=$/){ |substr|block }
使用参数作为记录分隔符,默认是$/,分隔str,传递每个子字符串给被提供的block
4.5.27 str.empty?
如果str为空,即长度为0,则返回true。
4.5.28 str.eql?(other)
如果两个字符串有相同的长度和内容,则这两个字符串相等。
4.5.29 str.gsub(pattern,replacement) str.gsub(pattern){|match|block}
返回str的副本,pattern的所有出现都替换为replacement或block的值。
pattern通常是一个正则表达式regexp;如果是一个字符串String,则没有正则表达式元字符被解释
4.5.30 str[fixnum] str[fixnum,fixnum] str[range] str[regexp] str[regexp,fixnum] str[other_str]
使用下列的参数引用str:
参数为一个fixnum,则返回fixnum位置的字符;
参数为两个fixnum或range,则返回一个在[fixnum1,fixnum2]的字符串;
参数为regexp,则返回匹配字符串的部分;
参数为带有fixnum的regexp,则返回fixnum的匹配数据;
参数为other_str,ze返回匹配other_str的子字符串。
。。。。。
还有好多,可以在这里查String的用法http://www.runoob.com/ruby/ruby-string.html
ruby支持的数据类型包括基本的Number,String,Ranges,Symbols,以及true、false和nil这几个特殊值。
同时还有两种重要的数据结构Array和Hash。
1.数值类型(Number)
1.1整型:整型分为两种,如果在31位以内(4字节),那为Fixnum实例;如果超过,即为Bignum实例。
Fixnum:-2^30 到 2^30-1
前导符号:0对应octal(八进制),0x对应hex(十六进制),0b对应binary(二进制)
下划线字符在数字字符串中被忽略。
ASCII字符或一个用问号标记的转义序列的整数值。
123 # Fixnum 十进制 1_234 # Fixnum 带有下划线的十进制 -500 # 负的Fixnum 0377 # 八进制 0xff # 十六进制 0b1011 # 二进制 "a".ord # "a"的字符编码 ?\n # 换行符(0x0a)的编码 12345678901234567890 # 大数 #整型Integer #以下是一些整型字面量 #字面量(literal):代码中能见到的值,数值,bool值,字符串等都叫字面量 #如以下的0,1_000_000,0xa等 a1=0 #带千分符的整型 a2=1_000_000 #其它进制的表示 a3=0xa puts a1,a2 puts a3 #puts print 都是向控制台打印字符,其中puts带回车换行符 =begin 这是注释,称作:嵌入式注释 类似C#中的/**/ =end
2.浮点型
ruby支持浮点数,它们是带有小数的数字。浮点数是类Float的对象,且可以是下列中任意一个。
123.4 # 浮点值 1.0e6 # 科学计数法 # 浮点型 f1=0.0 f2=2.1 f3=100000.1 puts f3
3.算术操作
加减乘除:+-*/;指数操作为:**,指数不必为整数
#指数算术 puts 2**(1/4) # 1与4的商为0,然后2的0次方为1 puts 16**(1/4.0) # 1与4.0的商为0.25,然后开四次方根
4.字符串类型
ruby字符串简单地说是一个8位字节序列,它们是类String的对象,用于存储或操作一个或多个字节的序列。
ruby字符串分为单引号字符串''和双引号字符串"",区别在于双引号字符串能够支持更多的转义字符。
双引号标记的字符串允许替换和使用反斜线符号,单引号标记的字符串不允许替换,且只允许使用\\和\'两个反斜线符号
4.1 如果需要在单引号字符串内使用单引号字符,那么需要在单引号字符串使用反斜杠\,这样ruby解释器就不会认为这个单引号字符是字符串的终止符号。
反斜杠也能转义另一个反斜杠,这样第二个反斜杠本身不会解释为转义字符。
puts 'escaping using "\\"'; # escape using "\" puts 'that\'s right'; # That's right
在双引号字符串中可以使用序列#{ expr } 替换任意ruby表达式的值为一个字符串
puts "相乘 :#{ 24*60*60 }"; # 相乘 :86400 name="Ruby" puts name puts "#{name + ",OK"}" # Ruby ,OK
4.2 字符串中进行数学运算
x,y,z = 12,36,72 puts "x的值为#{ x }" # x的值为12 puts "x + y 的值为 #{ x+y }" # x + y 的值为 48 puts "x + y + z 的平均值为 #{(x+y+z) / 3}" # x + y + z 的平均值为 40
4.3 ruby还支持一种采用%q和%Q来引导的字符串变量,其中%q使用的是单引号引用规则,而%Q是双引号引用规则。
格式:%q(ruby 的字符串可以使用""和''。)
跟在q或Q后面的字符是分界符,分界符可以是任意一个非字母数字的单字节字符,如:[,{,(,<,!等,字符串会一直读取到发现相匹配的结束符为止。
desc1 = %Q{Ruby 的字符串可以使用 "" 和 ''。} desc2 = %q[Ruby 的字符串可以使用 "" 和 ''。] puts desc1 # Ruby 的字符串可以使用 "" 和 ''。 puts desc2 # Ruby 的字符串可以使用 "" 和 ''。
4.3 反斜线符号
符号 | 表示的字符 |
---|---|
\n | 换行符(0x0a) |
\r | 回车符(0x0d) |
\f | 换页符(0x0c) |
\b | 退格键(0x08) |
\a | 报警符 Bell(0x07) |
\e | 转义符(0x1b) |
\s | 空格符(0x20) |
\nnn | 八进制表示法(n是0-7) |
\xnn | 十六进制表示法(n是0-9、a-f或A-F) |
\cx,\C-x | Control-x |
\M-x | Meta-x(c | 0x80) |
\M-\C-x | Meta-Control-x |
\x | 字符x |
ruby的默认字符集是ASCII,字符可以用单个字节表示。如果使用utf-8或其他现代的字符集,字符可能是用1-4个字节表示。可以在程序开头使用$KCODE改变字符集:$KCODE = 'u'
编码 | 描述 |
a | ASCII(与none相同)。这是默认的。 |
e | EUC |
n | none,同ASCII |
u | UTF-8 |
str1 = String.new('this is a test') str2 = str1.upcase puts "#{str1 + "--upper-- " + str2}" #this is a test --upper-- THIS IS A TEST
字符串的其他方法:
4.5.1 str % arg
使用格式规范格式化字符串。如果arg包含一个以上的替代,那么arg必须是一个数组。
4.5.2 str * integer
返回一个包含integer个str的新的字符串,也就是str被重复了integer次
4.5.3 str + other_str
拼接other_str到str
4.5.4 str << obj
连接一个对象到字符串,如果对象是范围为0-255之间的固定数字Fixnum,则它会被转换成一个字符。
4.5.5 str <=> other_str
把str与other_str进行比较,返回-1(小于)、0(等于)或1(大于),比较区分大小写。
4.5.6 str == obj
检查str和obj的相等性。如果obj不是字符串,则返回false
4.5.7 str =~ obj
在obj中根据正则表达式匹配str,返回匹配开始的位置,否则返回false。
4.5.8 str.capitalize
把字符串转换为大写字母显示。
4.5.9 str.capitalize!
与capitalize相同,但是str会发生变化并返回。
4.5.10 str.casecmp
不区分大小写比较字符串
4.5.11 str.center
居中字符串。
4.5.12 str.chomp
从字符串末尾移除记录分隔符,通常是\n,如果没有记录分隔符,则不进行任何操作。
4.5.13 str.chomp!
与chomp相同,但是str会发生变化并返回。
4.5.14 str.chop
移除字符串中的最后一个字符
4.5.15 str.chop!
与chop相同,但是str会发生变化并返回。
4.5.16 str.concat(other_str)
连接other_str到str.concat
4.5.17 str.count(str,...)
给一个或多个字符集计数。如果有多个字符集,则给这些集合的交集计数。
4.5.18 str.ctypt(other_str)
对str应用单向哈希加密,参数是两个字符长的字符串,每个字符的范围为a-z,A-Z,0-9, .或/ 。
4.5.19 str.delete(other_str,...)
参数交集中的所有字符会被删除
4.5.20 str.delete!(other_str,...)
与delete相同,但是str会发生变化并返回。
4.5.21 str.downcase
返回str.downcase的副本,所有的大写字母会被替换为小写字母
4.5.22 str.downcase!
与downcase相同,但是str会发生变化并返回
4.5.23 str.dump
返回str的副本,所有的非打印字符被替换为\nnn符号,所有的特殊字符被转义
4.5.24 str.each(separator=$/){ |substr|block }
使用参数作为记录分隔符,默认是$/,分隔str,传递每个子字符串给被提供的block
4.5.25 str.each_byte{|fixnum|block}
传递str的每个字节给block,以字节的十进制表示法返回每个字节
4.5.26 str.each_line(separator=$/){ |substr|block }
使用参数作为记录分隔符,默认是$/,分隔str,传递每个子字符串给被提供的block
4.5.27 str.empty?
如果str为空,即长度为0,则返回true。
4.5.28 str.eql?(other)
如果两个字符串有相同的长度和内容,则这两个字符串相等。
4.5.29 str.gsub(pattern,replacement) str.gsub(pattern){|match|block}
返回str的副本,pattern的所有出现都替换为replacement或block的值。
pattern通常是一个正则表达式regexp;如果是一个字符串String,则没有正则表达式元字符被解释
4.5.30 str[fixnum] str[fixnum,fixnum] str[range] str[regexp] str[regexp,fixnum] str[other_str]
使用下列的参数引用str:
参数为一个fixnum,则返回fixnum位置的字符;
参数为两个fixnum或range,则返回一个在[fixnum1,fixnum2]的字符串;
参数为regexp,则返回匹配字符串的部分;
参数为带有fixnum的regexp,则返回fixnum的匹配数据;
参数为other_str,ze返回匹配other_str的子字符串。
。。。。。
还有好多,可以在这里查String的用法http://www.runoob.com/ruby/ruby-string.html
相关文章推荐
- java 从零开始,学习笔记之基础入门<数据类型的转换>(五)
- Java学习笔记(一) Java基础以及数据类型介绍
- Java基础学习笔记 -- 4(基本数据类型)
- 【学习笔记三】最基本的JAVA基础[数据类型,运算符]
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
- 【Java学习笔记 】数据类型(基础数据类型)
- 嵌入式开发之C基础学习笔记03--基本数据类型,操作符,修饰符等基本概念
- JAVA基础学习笔记(2):八种基本数据类型
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇基础类型和日期类型报400错误解决方法
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- java基础学习笔记——基本数据类型对象包装类
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- 小甲鱼:Python学习笔记001_变量_分支_数据类型_运算符等基础
- iOS学习笔记之-C语言基础02(关键字、标识符、注释、数据类型)
- 【Swift】学习笔记(一)——初识 基础数据类型,代码风格,元组,断言
- 【零基础入门学习Python笔记005】闲聊之Python的数据类型
- Java基础学习笔记(一)基本数据类型
- MySql 基础学习笔记 1——概述与基本数据类型: 整型: 1)TINYINT 2)SMALLINT 3) MEDIUMINT 4)INT 5)BIGINT 主要是大小的区别 图 浮点型:命令
- Ruby学习笔记:一、数据类型
- Java基础学习笔记(一)基本数据类型