ruby笔记

本文介绍了Ruby语言的基础操作技巧,包括文件与目录处理、字符串与数组操作、时间格式化等,并展示了如何使用ActiveRecord进行数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、判断是否是目录,判断该目录是否存在
File.directory?(argu)


2、遍历目录
Dir.foreach(argu) do |f|
end

结果中包含"." ".."

3、改变工作目录
Dir.chdir(argu)


4、字符串移除前后空白

str.strip

返回新字符串

str.strip!

如果未改变,返回nil;如果改变,返回改变了的字符串自身

5、判断数组中是否包含某元素

array.include?(item)


6、查找字符串的子串

string.index(str)

如果找到子串,返回索引;没有找到子串,返回nil

7、获取目录中的所有文件
files = Dir.entries(dir_name)

files是字符串数组,元素是目录中文件的文件名,包括"."和".."。
文件名不是完整的路径

8、文件重命名
File.rename(old_file_name, new_file_name)

文件名必须是完整的路径

9、跨平台路径分隔符
File::SEPARATOR


10、创建文件夹
Dir.mkdir(dir_name)


11、字符串转换MD5

require 'digest/md5'
md5 = Digest::MD5.hexdigest(string)


12、long类型的整数转化为日期
Time.at(1283122880)

日期转化为时间戳
Time.local(year, month, day, hour, minute, second).to_i


13、删除目录,目录中有文件就无法删除
Dir.rmdir(dir_str)

dir_str是字符串,相对当前目录

14、读取文件内容到一个字符串
str = IO.read('file_name')

file_name可以是个不包含路径的文件名

15、ActiveRecord连接数据库、获取所有的表
ActiveRecord::Base.establish_connection (
{
:adapter => :mysql2,
:host => '192.168.18.32',
:database => :xxx,
:username => :xxx,
:password => 'xxx'
}
)


ActiveRecord::Base.connection.tables


16、ActiveRecord删除表、判断表是否存在
ActiveRecord::Migration.drop_table(table_name)

ActiveRecord::Base.connection.table_exists?(table_name)


17、ruby正则表达式
regex = /(ab)/
str = "abcab"

m = regex.match(str)
puts m[0] #输出ab
puts m[1] #输出ab
puts m[2] #输出nil


m是MatchData类型的对象

m = str.scan(regex) #m包含所有匹配到的字符串,是一个数组类型的对象
m.each do |n|
puts n[0]
end
#输出
#ab
#ab


18、ActiveRecord禁用表名必须为复数
ActiveRecord::Base.pluralize_table_names = false 


19、时间格式化
t = Time.now
t.strftime('%Y-%m-%d')


指令	描述
%a 星期几名称的缩写(比如 Sun)。
%A 星期几名称的全称(比如 Sunday)。
%b 月份名称的缩写(比如 Jan)。
%B 月份名称的全称(比如 January)。
%c 优选的本地日期和时间表示法。
%d 一个月中的第几天(01 到 31)。
%H 一天中的第几小时,24 小时制(00 到 23)。
%I 一天中的第几小时,12 小时制(01 到 12)。
%j 一年中的第几天(001 到 366)。
%m 一年中的第几月(01 到 12)。
%M 小时中的第几分钟(00 到 59)。
%p 子午线指示(AM 或 PM)。
%S 分钟中的第几秒(00 或 60)。
%U 当前年中的周数,从第一个星期日(作为第一周的第一天)开始(00 到 53)。
%W 当前年中的周数,从第一个星期一(作为第一周的第一天)开始(00 到 53)。
%w 一星期中的第几天(Sunday 是 0,0 到 6)。
%x 只有日期没有时间的优先表示法。
%X 只有时间没有日期的优先表示法。
%y 不带世纪的年份表示(00 到 99)。
%Y 带有世纪的年份。
%Z 时区名称。
%% % 字符。


20、创建二维数组
# 创建10×10的二维数组
a = Array.new(10) { Array.new(10) }


21、
十六进制转十进制
"f".hex

十进制转二进制
15.to_s(2)

二进制转十进制
puts 0b100
# 4

22、解析json字符串

require 'json'

JSON.parse('json字符串')
#返回Array或Hash
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值