用php计算字符串中大写字母的最简单、最短的方法?
我正在寻找最短、最简单和最优雅的方法来计算给定字符串中大写字母的数量。
I am looking for the shortest, simplest and most elegant way to count the number of capital letters in a given string.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
George Garchagudashvili 解决方案令人惊叹,但如果小写字母包含变音符号或重音符号,则该解决方案会失败。
因此,我做了一个小修复来改进他的版本,该版本也适用于小写重音字母:
您可以在turbocommons库中找到此方法和许多其他字符串常见操作:
https://github.com/edertone/TurboCommons/blob/70a9de1 737d8c10e0f6db04f5eab0f9c4cbd454f/TurboCommons -php/src/main/php/utils/StringUtils.php#L373
EDIT 2019
Turbocommons 中统计大写字母的方法已经演变为可以统计大小写的方法任何字符串上的字符。您可以在这里查看:
https://github.com/edertone/TurboCommons/blob/1e230446593b13a272b1d6a2903741598bb11bf2/TurboCommons-Php/src/main/php/utils/StringUtils.php#L391
在此处阅读更多信息:
https://turbocommons.org/en/ blog/2019-10-15/count-capital-letters-in-string-javascript-typescript-php
也可以在这里在线测试:
https://turbocommons.org/en/app/stringutils/count-capital-letters
George Garchagudashvili Solution is amazing, but it fails if the lower case letters contain diacritics or accents.
So I did a small fix to improve his version, that works also with lower case accentuated letters:
You can find this method and lots of other string common operations at the turbocommons library:
https://github.com/edertone/TurboCommons/blob/70a9de1737d8c10e0f6db04f5eab0f9c4cbd454f/TurboCommons-Php/src/main/php/utils/StringUtils.php#L373
EDIT 2019
The method to count capital letters in turbocommons has evolved to a method that can count upper case and lower case characters on any string. You can check it here:
https://github.com/edertone/TurboCommons/blob/1e230446593b13a272b1d6a2903741598bb11bf2/TurboCommons-Php/src/main/php/utils/StringUtils.php#L391
Read more info here:
https://turbocommons.org/en/blog/2019-10-15/count-capital-letters-in-string-javascript-typescript-php
And it can also be tested online here:
https://turbocommons.org/en/app/stringutils/count-capital-letters
我会给出另一个解决方案,也许不优雅,但有帮助:
I'd give another solution, maybe not elegant, but helpful:
它不是最短的,但可以说是最简单的,因为不需要执行正则表达式。通常我会说这应该更快,因为逻辑和检查很简单,但 PHP 总是让我惊讶,因为与其他东西相比,某些东西的速度有多快和慢。
It's not the shortest, but it is arguably the simplest as a regex doesn't have to be executed. Normally I'd say this should be faster as the logic and checks are simple, but PHP always surprises me with how fast and slow some things are when compared to others.