在ruby中用整数递增字符串
发布时间:2020-12-17 01:43:46 所属栏目:百科 来源:网络整理
导读:假设字符串是“abc”而用户输入是3则输出变为“def”. 应该通过用户输入将每个字符增加为整数值. 我写了一个代码,但它给出了一个错误.有没有其他方法可以做到这一点? #!/usr/bin/ruby -wputs "Enter the value of n";$n=gets;s = String.new("abc");s.split
|
假设字符串是“abc”而用户输入是3则输出变为“def”.
应该通过用户输入将每个字符增加为整数值. 我写了一个代码,但它给出了一个错误.有没有其他方法可以做到这一点? #!/usr/bin/ruby -w
puts "Enter the value of n";
$n=gets;
s = String.new("abc");
s.split("").each do |i|
$j = 0;
x = i;
begin
x.next;
$j = $j + 1;
end while $j < $n
puts x;
end
解决方法
您的代码中需要添加几项内容:
>而不是String.new,您只需在引号内添加您的字符串即可. 我想这可能是这样的: n = gets.to_i
s = 'abc'
s.split('').each do |i|
j = 0
x = i
while j < n
x = x.next
j += 1
end
puts x
end
但是您可以在字符串中的每个字符串上使用 # With n being the user's input as integer,in this case 3.
p 'abc'.chars.map { |char| (char.ord + n).chr }.join
# "def"
添加了n = gets.to_i,如@Ganesh的评论中所述. 如果要寻找Caesar Cipher实现: def foo(string,n)
lower = ('a'..'z').to_a.join
upper = ('A'..'Z').to_a.join
string.tr(lower + upper,lower[n..-1] + lower[0...n] + upper[n..-1] + upper[0...n])
end
p foo('XYZ',1) # "YZA"
p foo('ABC',1) # "BCD"
p foo('ABC',3) # "DEF"
比较慢,但…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
