我正在尝试交换字符串,而不使用像swapcase
这样的内置函数。
我想出了以下代码:
a = gets.split
b = ""
for i in a
if /[[:upper:]]/.match(i)
b += i.downcase
end
if /[[:lower:]]/.match(i)
b += i.upcase
end
end
puts b
但它产生了错误的输出。我怎么能在Ruby中做到这一点?
答案 0 :(得分:1)
模仿没有参数的swapcase的一种方法。
p 'Hello'.chars.map { |c| c.upcase == c ? c.downcase : c.upcase }.join
#=> "hELLO"
答案 1 :(得分:1)
"Hello World!".tr("a-zA-Z", "A-Za-z")
# => "hELLO wORLD!"
答案 2 :(得分:1)
与@ sagarpandya82的答案类似,但不会将字符串转换为数组并返回。
"ComMMent maintEnaNt, vaChe tacHetée?".gsub(/./) do |c|
c == c.upcase ? c.downcase : c.upcase
end
#=> "cOMmmENT MAINTeNAnT, VAcHE TAChETÉE?"
答案 3 :(得分:0)
Session::get()