Ruby中整数递增字符串,如何改写成长尾词?

2026-04-10 06:451阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计608个文字,预计阅读时间需要3分钟。

Ruby中整数递增字符串,如何改写成长尾词?

当然有其他方法可以实现这个需求。以下是一个简单的Python代码示例,它将用户输入的字符串中的每个字符转换为对应的ASCII码值,并将这些值相加,然后输出转换后的字符串:

pythondef transform_string(input_str): result= total=0 for char in input_str: total +=ord(char) for char in input_str: result +=chr(total % 256) total=(total + 1) % 256 return result

示例input_str=abcoutput_str=transform_string(input_str)print(output_str)

这段代码首先计算输入字符串中所有字符的ASCII码之和,然后将这个总和用于生成新的字符串,其中每个字符都是总和模256的结果。这样,每个字符都会根据输入字符串中字符的ASCII码值增加,并循环使用ASCII码表。

假设字符串是“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,您只需在引号内添加您的字符串即可.
> str.split(“”)可以是str.chars.
> $j = $j 1可以是$j = 1.
>如果您在$j和$n之间进行比较,那么<<应该<.
>你不需要;除非你在一行写作.
>开始;结束虽然可以一会儿;结束

我想这可能是这样的:

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

但是您可以在字符串中的每个字符串上使用String#ord来返回它的序数,添加用户输入,然后使用String#chr获取该数字的ASCII字符:

# 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实现:

Ruby中整数递增字符串,如何改写成长尾词?

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"

比较慢,但……

本文共计608个文字,预计阅读时间需要3分钟。

Ruby中整数递增字符串,如何改写成长尾词?

当然有其他方法可以实现这个需求。以下是一个简单的Python代码示例,它将用户输入的字符串中的每个字符转换为对应的ASCII码值,并将这些值相加,然后输出转换后的字符串:

pythondef transform_string(input_str): result= total=0 for char in input_str: total +=ord(char) for char in input_str: result +=chr(total % 256) total=(total + 1) % 256 return result

示例input_str=abcoutput_str=transform_string(input_str)print(output_str)

这段代码首先计算输入字符串中所有字符的ASCII码之和,然后将这个总和用于生成新的字符串,其中每个字符都是总和模256的结果。这样,每个字符都会根据输入字符串中字符的ASCII码值增加,并循环使用ASCII码表。

假设字符串是“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,您只需在引号内添加您的字符串即可.
> str.split(“”)可以是str.chars.
> $j = $j 1可以是$j = 1.
>如果您在$j和$n之间进行比较,那么<<应该<.
>你不需要;除非你在一行写作.
>开始;结束虽然可以一会儿;结束

我想这可能是这样的:

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

但是您可以在字符串中的每个字符串上使用String#ord来返回它的序数,添加用户输入,然后使用String#chr获取该数字的ASCII字符:

# 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实现:

Ruby中整数递增字符串,如何改写成长尾词?

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"

比较慢,但……