出于各种目的,我发现自己需要截断IP地址,我需要将程序中的IP地址从(xx.x.x.x)更改为(xx.x.x.1),方法是将字符串中最后一个"。"后面的最后一个数字更改为1。
我的理论是,这可以通过截断字符串从最末尾到最后一个"。",并在其末尾添加一个"1"来实现,或者通过某种方式命令程序将最后一个"。"之后的字符串值更改为等于1 -这些我都不知道怎么做。
我看过很多Ruby中截断和修改字符串的教程,但是似乎没有一个涵盖这么复杂的内容。
总之,我的问题是:
-我如何将我的IP地址中最后一个"。"后的最后一个数字的值更改为1的值(使用上述第2段中的任何一种方法)?
-这是否需要将变量类从string更改为int等?
提前感谢。
Ruby是一种面向对象的语言,不是面向字符串或面向整数的语言。你应该在程序中使用对象,而不是字符串或整数。(当然,除非对象是字符串或整数。但是IP地址不是字符串或整数,它是一个IP地址。
一旦你切换到使用IP地址,你的问题变得微不足道:
require 'ipaddr'
ip = IPAddr.new('12.34.56.78')
(ip & IPAddr.new(255.255.255.0)).succ
# => #<IPAddr: IPv4:12.34.56.1/255.255.255.255>