Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ruby中切换字符串中的每对字符_Ruby - Fatal编程技术网

在Ruby中切换字符串中的每对字符

在Ruby中切换字符串中的每对字符,ruby,Ruby,我有一个数字字符串07917142299099F0,我想交换每一对字符。因此字符串变成701917249209990F。我还没有真正使用Ruby,所以我不确定这是否可行。谢谢 您可以: 将字符串中的每个字符作为数组获取。 把每一对元素都放进去。 交换/反转它们,因为它们只是两个。 加入结果。 请注意,对于字符串中奇数个元素,这可能无法正常工作。您可以: 将字符串中的每个字符作为数组获取。 把每一对元素都放进去。 交换/反转它们,因为它们只是两个。 加入结果。 请注意,对于字符串中奇数个元素,

我有一个数字字符串07917142299099F0,我想交换每一对字符。因此字符串变成701917249209990F。我还没有真正使用Ruby,所以我不确定这是否可行。谢谢

您可以:

将字符串中的每个字符作为数组获取。 把每一对元素都放进去。 交换/反转它们,因为它们只是两个。 加入结果。 请注意,对于字符串中奇数个元素,这可能无法正常工作。

您可以:

将字符串中的每个字符作为数组获取。 把每一对元素都放进去。 交换/反转它们,因为它们只是两个。 加入结果。
请注意,对于字符串中奇数个元素,这可能无法正常工作。

您可以使用regex替换:

str.gsub(/(.)(.)/, '\2\1')

您可以将替换与正则表达式一起使用:

str.gsub(/(.)(.)/, '\2\1')

虽然我更喜欢@Sagar的解决方案,但为了多样性,这里还有另一个

def reverse_each_pair(str)
  nbr_even_chars = 2*(str.size/2)
  nbr_even_chars.times.with_object('') do |i,s|
    s[i] = str[i.odd? ? (i-1) : i+1]
  end << str[-1, str.size-nbr_even_chars]
end

虽然我更喜欢@Sagar的解决方案,但为了多样性,这里还有另一个

def reverse_each_pair(str)
  nbr_even_chars = 2*(str.size/2)
  nbr_even_chars.times.with_object('') do |i,s|
    s[i] = str[i.odd? ? (i-1) : i+1]
  end << str[-1, str.size-nbr_even_chars]
end

…或str.gsub/./,&:反向。无论字符串的字符数是偶数还是奇数,在后一种情况下,假设最后一个字符保持不变,这两种方法都有效。我更喜欢我的正则表达式,但只是因为我不喜欢你看我的方式……或者str.gsub/./,&:reverse。无论字符串的字符数是偶数还是奇数,在后一种情况下,假设最后一个字符保持不变,这两种方法都有效。我更喜欢我的正则表达式,但只是因为我不喜欢你看我的方式。当引用Ruby对象时,将其显示为字符串的引号;2.始终明确是否要修改或变异原始对象此处的字符串,或创建并返回新对象而不变异原始对象变得模糊;3.说一串数字更准确;您可以像编写代码一样,通过将字符串包含在反勾号中来设置字符串。您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请提供一个。四个小点:1。当引用Ruby对象时,将其显示为字符串的引号;2.始终明确是否要修改或变异原始对象此处的字符串,或创建并返回新对象而不变异原始对象变得模糊;3.说一串数字更准确;您可以像编写代码一样,通过将字符串包含在反勾号中来设置字符串。您遇到问题的代码是什么?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同?请提供一个。
reverse_each_pair '07917142299099F0'
  #=> "701917249209990F" 
reverse_each_pair '07917142299099F'
  #=> "70191724920999F"