gpt4 book ai didi

groovy - PascalCase 中的第一个单词为小写

转载 作者:行者123 更新时间:2023-12-01 09:18:11 24 4
gpt4 key购买 nike

我有一个包含 PascalCase 文本的字符串,我需要从中提取第一个单词并将其转换为小写:

assert firstWord('PmdExtension') == 'pmd'
assert firstWord('PMDExtension') == 'p'
assert firstWord('Pmd') == 'pmd'
assert firstWord('CodeQualityExtension') == 'code'

static String firstWord(String word) {
return '???'
}

让我们只关注有效的 PascalCase 标识符(没有任何其他字符、数字并且总是以大写字母开头)。

我的问题的简单而干净的解决方案是什么?

我试过了
word.split(/[A-Z]/).first().join(' ')

但它删除了所有大写字母,而我需要保留它们。

最佳答案

assert firstWord('PmdExtension') == 'pmd'
assert firstWord('PMDExtension') == 'p'
assert firstWord('Pmd') == 'pmd'
assert firstWord('CodeQualityExtension') == 'code'
assert firstWord('') == ''
assert firstWord(null) == ''

static String firstWord(String word) {
word ? word.split(/(?=\p{Lu})/)[0].toLowerCase() : ''

// A verbose way would be as below (omitting the null check for brevity)
// word[0].toLowerCase() + word[1..-1].takeWhile { Character.isLowerCase(it) }
}

关于groovy - PascalCase 中的第一个单词为小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39165296/

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