Project1

标题: 如何使字符串变为整形数据 [打印本页]

作者: 66菜鸟    时间: 2007-6-23 03:36
标题: 如何使字符串变为整形数据
RGSS默认函数里面貌似没有val这个函数啊~


那有什么方法可以让字符串转化为整形数据呢?

如a="1234"
要让a=1234
除了转换ASCII以外没有别的方法了么?………………

还是RGSS另有函数? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 66菜鸟    时间: 2007-6-23 03:36
标题: 如何使字符串变为整形数据
RGSS默认函数里面貌似没有val这个函数啊~


那有什么方法可以让字符串转化为整形数据呢?

如a="1234"
要让a=1234
除了转换ASCII以外没有别的方法了么?………………

还是RGSS另有函数? [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 残阳泪珀    时间: 2007-6-23 03:45
a = "Ruby"

p a.upcase     # => "RUBY"
上面示例中,调用对象的方法时于变量名称后面会加上符号“.”,在其后面记述要调用的方法。而操作的对象称为作用实例。这里 a.upcase 中的 a 就是作用实例。
但是,对字符串以外的对象调用 String 类的方法比如 upcase 方法的话会怎样呢?
a = 3

p a.upcase     # ERROR!!
这样会出现错误。因为 3 是一个整数对象属于 Fixnum 类,而 upcase 在 Fixnum 类的方法中没有定义。
还有,没有必要完全记住这些方法的名称。在对字符串进行某些操作时要使用 String 类的方法,直接打开 GRSS 参考进行查找会十分方便。使用方法的次数多了,自然就会记住它们。
父类
3 和 65 等整数,是 Fixnum 类的实例。
看到 Fixnum 类的方法列表了吧,它的方法数量是如此的少会不会觉得不可思议。当然整数能使用的方法不只这几个。关键在父类这栏里。到 Integer 里面去看看吧。
在 Integer 类中有个名称为 chr 的方法。这是个将数字转换为该数字编码的文字并返回的方法。试试看吧。
a = 65

p a.chr       # => "A"
上例正确的返回了一个结果。但是 65 是 Fixnum 类的一个实例,为何调用 Integer 类的方法 chr 也不出现错误呢?这是因为 Integer 类是 Fixnum 类的父类,而 Fixnum 类继承了父类的方法。
所谓继承,就是在一个原有类中扩充定义一个新类,其新定义的类可以使用原有类的方法和属性。这样原来的类就称为父类,而新定义的类则称为子类。
总之,Fixnum 类是 Integer 类中扩充定义的一个新类。也可以这样说,Integer 类是 Fixnum 类的父类。Fixnum 类继承了 Integer 类的性质,也同样继承了父类的方法。当然,继承的还包括 Integer 类的父类 Numeric 类,以及 Numeric 类的父类 Object 类中定义的方法,Fixnum 类的实例都可以使用。
看到这里也许有人会问,为何要特意把这些类给分开呢?回答会有一点困难,继承的意思,是保持被继承者的性质但却同时拥有自己独有的特性。比如,浮点数是 Float 类的实例,这个类是从 Numeric 类中继承而来的。整数和浮点数的性质是不相同的,然而无论哪个都是表示「数字」这个概念却是共同的,所以在 Numeric 类中定义共同的部分而不用在各个子类中重复定义。

从http://bbs.rpgchina.com/read-htm-tid-26872.html上看的~~~
作者: 66菜鸟    时间: 2007-6-23 03:50
貌似没有提到的怎么转换的样子………………
只是在说调用方法而已
作者: Freshman    时间: 2007-6-23 03:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七夕小雨    时间: 2007-6-23 03:58
因该不行吧~那个是给Fixnum用的

作者: 66菜鸟    时间: 2007-6-23 04:01
以下引用Freshman于2007-6-22 19:54:36的发言:

a="1234" ---> a=1234 吗?
a.to_i 可以做到吗?


不行啊………………报错都是type………………寒……这个报错很久没有看到了……

我只是想String ——〉Integer
作者: Freshman    时间: 2007-6-23 04:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 66菜鸟    时间: 2007-6-23 04:06
这里不是程序员汇集的地方么……{/gg}

所谓整形就是一个整形数据用来存放整数,整形数可以是正整数、负整数、和零


等下……不是这样吧…………

你应该会C#的啊~


作者: 亿万星辰    时间: 2007-6-23 04:41
以下引用Freshman于2007-6-22 19:54:36的发言:

a="1234" ---> a=1234 吗?
a.to_i 可以做到吗?

楼主有试过了么?
作者: 66菜鸟    时间: 2007-6-23 05:53
?我试过了啊不行的说………………

我这样写对么?

a="1234"
a.to_i
p a
作者: 幻の飞鱼    时间: 2007-6-23 07:07
以下引用66菜鸟于2007-6-22 21:53:07的发言:

?我试过了啊不行的说………………

我这样写对么?

a="1234"
a.to_i
p a


第二行MS应该是
a = a.to_i 吧

a.to_i并不会直接修改a

比如写b = a.to_i,a的值还是不会变的 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 66菜鸟    时间: 2007-6-23 07:17
原来是这样啊……我把.to_i理解为一个函数了……{/gg}

脑子迟钝啊~{/hx}
作者: 七夕小雨    时间: 2007-6-23 20:48
你还脑子迟钝啊………………

我猛然才发现这是to_i不是to_s

理解为integer to String了{/gg}

我已经没有救了~~昨天晚上突然想起来了……今天一起床就来回贴




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1