0

我试图找到一串数字的前半部分和后半部分,如果长度为奇数,则忽略中心数字,即 input = "102" first_half = "1" second_half = "2"

使用此代码

i = gets
first_half=i[0..(i.length / 2 - 1).floor]
second_half = i[i.length -first_half.length)..i.length - 1]
print "#{first_half}\n#{second_half}"

但是对于此输入,输出为 10 ("\n") 2

但是,该代码在 irb 中确实可以正常工作。谁能看到我的问题是什么?

4

3 回答 3

2
i = gets

返回末尾带有换行符的字符串,即您的字符串是"102\n",因此长度为 4。

于 2009-08-16T16:16:13.080 回答
1

利用i=gets.chomp

于 2009-08-16T16:19:48.593 回答
0
i = gets.chomp
first_half=i[0..(i.length / 2 - 1).floor]
second_half = i[(i.length - first_half.length).. i.length - 1]
print "#{first_half}\n#{second_half}"

iano:Desktop ian$ ruby stack.rb 
102
1
2

您的问题(尽管有一些小的语法错误)是您必须 chomp(删除输入字符串末尾的“\n”字符)。

于 2009-08-16T16:20:11.167 回答