gpt4 book ai didi

ruby - 如何在数组中找到第一个不同大小写的字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 08:35:39 26 4
gpt4 key购买 nike

我有一个字符串数组,所有字符串都至少包含一个字母:

["abc", "FFF", "EEE"]

如何找到与数组中任何先前字符串大小写不同的第一个字符串的索引?该函数应为上述内容提供 1,因为:

FFF".eql?("FFF".upcase)

并且该条件对于数组中的任何先前字符串都不成立,而:

["P", "P2F", "ccc", "DDD"]

应该产生 2,因为 "ccc" 没有大写,而它的所有前身都是。

我知道如何找到第一个大写的字符串

string_tokens.find_index { |w| w == w.upcase }

但我不知道如何调整上述内容以适应不同的情况。

最佳答案

您可以获取每对连续的元素并比较它们的大写性。当它们不同时,您返回索引。

def detect_case_change(ary)
ary.each_cons(2).with_index(1) do |(a, b), idx|
return idx if (a == a.upcase) != (b == b.upcase)
end
nil
end

detect_case_change ["abc", "FFF", "EEE"] # => 1
detect_case_change ["P", "P2F", "ccc", "DDD"] # => 2

关于ruby - 如何在数组中找到第一个不同大小写的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44661511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com