出于各种目的,我发现自己需要截断一个IP地址,我需要通过更改最后一个&#34之后的最后一个数字来改变我的程序中的IP地址(xx.xxx)到(xx.xx1) ;"在字符串中值为1。
我认为这可以通过截断字符串从最终到#34;。"并添加" 1"来实现。在它的最后,或者以某种方式命令程序在最后的#34;之后改变字符串值。"等于1 - 我不知道怎么做。
我已经看过关于在Ruby中截断和改变字符串的各种教程,但是似乎没有一些教程能够覆盖那么复杂的东西。
简而言之,我的问题是:
- 如何更改最后一个"之后的最后一个数字的值。"在我的IP地址中,值为1(使用第2段中的上述方法)?
- 这是否需要从字符串到int等的变量类更改?
提前谢谢。
答案 0 :(得分:1)
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>