首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更好的是word.toUpperCase().chars()还是word.chars().map(Chars::toUpperCase)?

更好的是word.toUpperCase().chars()还是word.chars().map(Chars::toUpperCase)?
EN

Stack Overflow用户
提问于 2021-09-06 07:09:59
回答 1查看 104关注 0票数 3

我们需要从字符串中获得大写字符流。有两种方法:

  1. word.toUpperCase().chars()

  1. word.chars().map(Character::toUpperCase)

哪种方法更好?

P.S.根据注释中的要求,我指定了使用代码的整个方法:

代码语言:javascript
复制
private int[] toSortedChars(final String word) {
   return word.chars().map(Character::toLowerCase).sorted().toArray();
}

该方法用于求解习题:https://exercism.org/tracks/java/exercises/anagram

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-06 07:41:04

第一种方法更好。

Character.toUpperCase的Javadoc提到:

一般来说,应该使用

()将字符映射为大写。字符串案例映射方法比字符案例映射方法有几个优点。字符串案例映射方法可以执行区域敏感映射、上下文敏感映射和1:M字符映射,而字符大小写映射方法则不能。

您现在可能不考虑不同的语言而不是英语,但在某些时候,您可能希望支持其他语言,然后大写变得更加困难,因为字符不能单独大写。

例如:"Straße".toUpperCase()返回"STRASSE" (甚至在英语区域设置中),如果要将每个字符分别转换为大写,则不能复制这种行为。

(注意:最近,在德语中添加了大写的“声母”,但除了大写的名字外,它还没有被频繁使用。)

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69070478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档