Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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 on rails 仅当单词';不全是帽子吗?_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 仅当单词';不全是帽子吗?

Ruby on rails 仅当单词';不全是帽子吗?,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,有没有一种方法可以将字符串中的小写单词仅大写 例如,此字符串: WOrd ABC WOrd 应返回: Word ABC Word 注意:第一个单词仍应为“句子大小写” 我在rails中尝试了人性化和标题库功能,但它们也使用了小写单词,这些单词都是大写的(通常代表一些首字母缩写词,不应该使用小写) 更新: 在以下答案的帮助下,我终于解决了这个问题: def fix(string) s = [] string.split.each do |word| if word.swapcase

有没有一种方法可以将字符串中的小写单词大写

例如,此字符串:

WOrd ABC WOrd

应返回:

Word ABC Word

注意:第一个单词仍应为“句子大小写”

我在rails中尝试了
人性化
标题库
功能,但它们也使用了小写单词,这些单词都是大写的(通常代表一些首字母缩写词,不应该使用小写)

更新:

在以下答案的帮助下,我终于解决了这个问题:

def fix(string)
  s = []
  string.split.each do |word|
    if word.swapcase != word.downcase
      s << word.downcase
    else
      s << word
    end
  end
  s = s.join(' ').chomp(' ')
  s[0] = s[0].capitalize
  return s
end
def修复(字符串)
s=[]
string.split.each do|单词|
如果word.swapcase!=唐卡斯

您可能只需要检查swapcase和小写是否相同

if word.swapcase != word.downcase
    s << word.downcase + " "
else
    s << word + " "
if word.swapcase!=唐卡斯

您可能只需要检查swapcase和小写是否相同

if word.swapcase != word.downcase
    s << word.downcase + " "
else
    s << word + " "
if word.swapcase!=唐卡斯
怎么样

string = 'WOrd ABC Word wOrD WOrD'
string.split(' ').map.with_index {|w,i|
  /^[A-Z]+$/.match(w) ? w : i == 0 ? w.capitalize : w.downcase
}.join(' ')
产生:

=> "Word ABC word word word"
那么:

string = 'WOrd ABC Word wOrD WOrD'
string.split(' ').map.with_index {|w,i|
  /^[A-Z]+$/.match(w) ? w : i == 0 ? w.capitalize : w.downcase
}.join(' ')
产生:

=> "Word ABC word word word"

我更喜欢创建提供人类可读名称的小方法:

class String
  def all_caps?
    swapcase == downcase
  end

  def downcase_all_but_acronyms
    all_caps? ? self : downcase
  end
end
那么你的答案是:

string.split.map(&:downcase_all_but_acronyms)

我更喜欢创建提供人类可读名称的小方法:

class String
  def all_caps?
    swapcase == downcase
  end

  def downcase_all_but_acronyms
    all_caps? ? self : downcase
  end
end
那么你的答案是:

string.split.map(&:downcase_all_but_acronyms)

如果字符串中只有一个单词,则失败。例:
WorD
好奇。它非常适合我,字符串中只有一个单词
string=“WorD”
返回
=>“WorD”
您是正确的。我在分配字符串变量时出错。正在打印另一个字符串。啊。。。但如果你有标点符号,它确实会失败。如果有一个
word,word,word
中间的
单词,
会转换成小写。我可以通过将正则表达式更改为
/^[a-Z0-9!%&(),;“:”?“]+$/
有没有更简单的方法?如果字符串中只有一个单词,它就会失败。例如:
word
好奇。如果字符串中有一个单词,它就非常适合我。
string=“word”
返回
=>单词“
你说得对。我在分配字符串变量时出错。正在打印另一个字符串。啊。。。但如果你有标点符号,它确实会失败。如果有一个
word,word,word
中间的
单词,
会转换成小写。我可以通过将正则表达式更改为
/^[a-Z0-9!%&(),;“:”?“]+$/
有没有更简单的方法?值得等待,直到你有足够的声誉来回答自己的问题,然后将你的更新作为答案发布,而不是将你的答案包含在问题中。谢谢。我会回来更新此线程。值得等待,直到你有足够的声誉来回答自己的问题,然后发布你的更新作为答案,而不是将您的答案包含在问题中。谢谢。我会回来更新此线程。