设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2014|回复: 3
打印 上一主题 下一主题

[已经过期] 关于截取字符串的代码,谁能帮我解决下bug

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1912
在线时间
1554 小时
注册时间
2013-4-13
帖子
917
跳转到指定楼层
1
发表于 2013-4-16 14:40:44 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
本帖最后由 沉滞的剑 于 2013-4-16 16:06 编辑

RUBY 代码复制
  1. $perks = []
  2. class Perk
  3.   attr_accessor :index
  4.   attr_accessor :name
  5.   attr_accessor :note
  6.   attr_accessor :fatherid
  7.   attr_accessor :description
  8. ##=============================================================================
  9. def finding (tag)
  10.    a = @note.index(tag)
  11.    a = a + tag.size unless a == nil
  12.    b = @note.index("!",a-1) unless a == nil
  13.    c = @note[a..b-1].to_i unless a == nil or b == nil
  14.    return c
  15. end
  16.   def finding_s (tag)
  17.     a = @note.index(tag)
  18.     p a = a + tag.size unless a == nil
  19.     p b = @note.index("!",a+1) unless a == nil
  20.     p c = @note[a,b].to_s unless a = nil or b == nil
  21.    return c
  22. end
  23. ##=============================================================================
  24.   def initialize (index,name,note)
  25.     @index = index
  26.     @name = name
  27.     p @note = note
  28.     @fatherid = finding("<f>")
  29.     @description = finding_s("<d>")
  30.   end
  31.   def self.setup
  32.   for i in $data_skills
  33.     if i != nil
  34.       b = i.name
  35.       a = i.id
  36.       c = i.note
  37.       $perks[a]= Perk.new(a,b,c)
  38.     end  
  39.   end
  40. end
  41. end


Lv1.梦旅人

梦石
0
星屑
55
在线时间
42 小时
注册时间
2009-12-2
帖子
27
2
发表于 2013-4-16 15:11:44 | 只看该作者
s = "12321"
p s[1,3]

正则表达式只是用来匹配特定形式的字符串,跟你说的截取无关,具体看vx版帮助吧

点评

截取字符串我成功了...用的是[a..b],不过编译器还是不放我过去.....已经更新代码  发表于 2013-4-16 15:24
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
3
发表于 2013-4-16 18:06:19 | 只看该作者
用正则表达式吧..这头都大了{:2_270:}

@note[/*\[f:(\d+)\]*/]可以匹配[f:5]
就是fatherid 可以设为 5了
  1. if @note[/*\[f:(\d+)\]*/]
  2.   @fatherid = $1.to_i
  3. else
  4.   # 匹配不成功时
  5. end
复制代码
最重要的是这支持中文,截取字节的话,中文很麻烦

点评

看不懂......正则表达式的语法我一直就搞不明白....  发表于 2013-4-17 00:17

评分

参与人数 1星屑 +30 收起 理由
j433463 + 30 我很赞同

查看全部评分

>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2013-2-8
帖子
424
4
发表于 2013-4-18 16:18:06 | 只看该作者
本帖最后由 SuperMario 于 2013-4-18 16:55 编辑

@沉滞的剑 ,没注意到你还需要读取数据~
那还是使用正则表达式更方便,这块我也不太清楚,我一般是这样用:
  1. /(f:)(\d+)/ =~ "d:13 f:12 e:"
  2. p $1 # "f:" 第一次匹配成功的值
  3. p $2 # "12" 第二次
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-5 16:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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