如何从小写的字符串数组返回随机的大写和小写字符串

时间:2019-01-07 20:45:01

标签: ruby

有没有一种有效的方法可以随机返回大写或小写的字符串?我不想在数组中使用sam build sam package --s3-bucket <your-bucket> --output-template-file packaged.yaml sam deploy \ --template-file packaged.yaml \ --stack-name sam-app \ --capabilities CAPABILITY_IAM upcase,如下所示。同样,Array将包含两个名称,假设[“ Cary”,“ Ursus”],而我想要的输出将是这4个结果之一。 1-我的名字是CARY或我的名字是cary或我的名字是URSUS或我的名字是ursus。

downcase

2 个答案:

答案 0 :(得分:7)

这个呢? 0代表大写,1代表小写

def random_case(name)
  rand(2).zero? ? name.upcase : name.downcase
end

rand(2)返回01

如果要从数组中随机获取方法

def random_case(name)
  name.public_send([:upcase, :downcase].sample)
end

注释中要求的多个名称

def random_case(*names)
  names.map { |name| rand(2).zero? ? name.upcase : name.downcase }
end

您可以使用

random_case("Ursus", "Cary")

注释中的最后一个请求

def random_case(*names)
  names.sample.public_send([:upcase, :downcase].sample)
end

答案 1 :(得分:0)

只需另一个选择:

def random_case(*names)
  name = names.sample.downcase
  [true, false].sample ? name.upcase : name
end

所以

10.times do
  p random_case('Kirk', 'Spock')
end