-1

出于各种目的,我发现自己需要截断 IP 地址,我需要通过更改最后一个“。”之后的最后一个数字来将程序中的 IP 地址从 (xx.xxx) 更改为 (xx.xx1)。字符串中的值为 1。

我认为这可以通过将字符串从最后截断到最后的“。”,并在其末尾添加“1”,或者以某种方式命令程序在最后的字符串值之后更改字符串值来实现。 “。” 等于 1 - 我都不知道该怎么做。

我看过各种关于在 Ruby 中截断和更改字符串的教程,但似乎没有一个涵盖如此复杂的内容。

简而言之,我的问题:

- 如何更改最后一个“。”之后的最后一个数字的值。将我的 IP 地址中的值设置为 1(使用第 2 段中的上述任一方法)?

- 这是否需要将变量类从字符串更改为 int 等?

先感谢您。

4

1 回答 1

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>
于 2015-10-14T12:53:23.523 回答