设为首页 |收藏本站 |充值R币 |赚取R币

微信扫码登录

使用验证码登录

登录 | 立即注册 | 找回密码
查看: 1312|回复: 4
收起左侧

[ruby教程] SketchUp Ruby二次开发第一章 Ruby 字符串 1.4

[复制链接]

新浪微博达人勋

发表于 2014-3-23 06:38:56 | 显示全部楼层 |阅读模式

欢迎马上注册ARC,结交更多好友,享用更多资源,让你轻松学习工作

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
1.4字符串strings

在编程中数值是非常重要的,但是我们也会经常需要处理文本的。在我们阅读文件的字符串,定义标签,或者为新的SketchUp工具添加提示,在我自己写脚本的时候,我会经常使用显示信息在代码的执行过程中。

字符串包括一个或者很多的字符,包括字母,数字,标点符号和特殊字符。在Ruby中一个字符串可以使用双引号或者单引号来宝石,如果是使用双引号的话,Ruby会忽略转义字符(如 \t 是Tab,\n是换行),而是转义显示他们,使用单引号好的情况下会忽略转义字符,例如:"Line1\nLine2"会打印两行,因为\n会转义成换行。'Line1\nLine2'就会直接打印Line1\nLine2,会忽略转义字符。

字符串基础操作
Ruby提供了一些方式来操作字符串,其中两个常用的操作符是+和*,他们是非常容易理解的,+操作符是将两个字符串连接到一起:
"Hello," + " world" → Hello, world
*操作符是重复字符串的次数:
"Hello!" * 3 → Hello!Hello!Hello!

子字符串和字符串取值
在编程中一个常用的操作就是通过字符串的位置来获取字符。字符串的位置我们称为索引(index),索引的值是从0到字符的个数减1。

一组临近的字符在字符串中称为子字符串,我们可以通过索引的范围来访问的子字符串。我们有两种方式来表示索引的范围。
第一种方式是start..end,表示从start到end的索引值,包括end。
第二种方式start...end,表示从start到end的索引值,不包括end。
通过下面的例子来理解这两种范围的不同:
.  0...4      代表范围为 [0, 1, 2, 3]
.  0..4       代表范围为 [0, 1, 2, 3, 4]
.  -5..-3     代表范围为 [–5, –4, –3]
.   'a'...'e' 代表范围为 ['a', 'b', 'c', 'd']
.  'a'..'e'   代表范围为 ['a', 'b', 'c', 'd', 'e']

在Ruby控制台中输入下面的代码
"HelloWorld"[0..2]
"HelloWorld"[0...2]
"HelloWorld"[1..4]
"HelloWorld"[1...4]
返回结果依次是:hel,he,ello,ell

如果索引的数是整数,索引的位置就是从左开始的,如果是负数的话就是从右边开始的,具体的索引值可以参考下图:
1.jpg
下面的命令展示了如何使用负数来获取子字符串;
"HelloWorld"[-10..-6]
"HelloWorld"[-3...-1]
打印结果依次是:Hello,rl

我们还可以使用另外一种获取字符串的方法,形式为[index, length]:
index代表索引的位置,length代表索引的长度也就是个数。在命令行中尝试下面的操作:
"HelloWorld"[3, 4]
"HelloWorld"[0, 5]
"HelloWorld"[-5, 5]
打印结果依次是lowo,Hello,World

1.5 字符串进阶操作
进阶的操作方式是通过字符串后面加上.后面是操作的方法,方法我们在后面的章节会讲到,在这里我们仅仅相信成这是一个特殊的操作符号就可以了。例如length和size都会返回字符串的字符个数,下面的例子展示这两种操作方法,我们可以在Ruby控制台中输入下面代码:
"HelloWorld".length
"HelloWorld".size
打印结果依次是:10,10

下面的表格列出了一些字符串的方法,想要产看更多的字符串方法可以访问:http://www.ruby-doc.org/core/classes/String.html
2.jpg
打印字符串
Ruby提供了3中在控制台中打印字符串的方法:puts,print,printf。我们的教程中主要都是使用puts,下面的例子展示了puts的使用:
puts "Number of characters in Hello: " + "Hello".length.to_s
打印结果:Number of characters in Hello: 5

"Hello".length返回整型数值5,在Ruby中,不会总是自动将数值转换成字符串的,在这里我们使用to_s方法,将"Hello".length转化成字符串5.

ARC设计中文网友情提示;
回帖【禁止】纯数字字母违者扣分或【禁止】浏览本站,谢谢配合;
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,以免重复发布资源,谢谢支持!
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【分】和【币】回贴,加分不会扣除自己的积分,做一个热心并受欢迎的人!

新浪微博达人勋

发表于 2014-4-14 07:10:30 | 显示全部楼层
真希望积分能越来越多啊

评分

参与人数 1R币 +2 收起 理由
admin + 2 谢谢支持,大家一起来玩SU,共同学习进步

查看全部评分

ARC设计中文网友情提示;
回帖【禁止】纯数字字母违者扣分或【禁止】浏览本站,谢谢配合;
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,以免重复发布资源,谢谢支持!
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【分】和【币】回贴,加分不会扣除自己的积分,做一个热心并受欢迎的人!

新浪微博达人勋

发表于 2014-7-31 20:00:10 | 显示全部楼层
謝謝分享!真是優質~SU的專家
ARC设计中文网友情提示;
回帖【禁止】纯数字字母违者扣分或【禁止】浏览本站,谢谢配合;
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,以免重复发布资源,谢谢支持!
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【分】和【币】回贴,加分不会扣除自己的积分,做一个热心并受欢迎的人!

新浪微博达人勋

发表于 2015-6-25 01:30:56 | 显示全部楼层
楼主辛苦谢谢分享
ARC设计中文网友情提示;
回帖【禁止】纯数字字母违者扣分或【禁止】浏览本站,谢谢配合;
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,以免重复发布资源,谢谢支持!
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【分】和【币】回贴,加分不会扣除自己的积分,做一个热心并受欢迎的人!

新浪微博达人勋

发表于 2015-8-18 15:44:32 | 显示全部楼层
狠人啊,膜拜,必须的
ARC设计中文网友情提示;
回帖【禁止】纯数字字母违者扣分或【禁止】浏览本站,谢谢配合;
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案,以免重复发布资源,谢谢支持!
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【分】和【币】回贴,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题 上个主题 下个主题 快速回复 返回列表 客服中心 联系我们 搜索 官方QQ群
    关注:我们微博了解更多....
手机扫描二维码

小黑屋|沪ICP备11015368号-1|ARC设计中文网

GMT, 2025-4-16 23:28

快速回复 返回顶部 返回列表