我们需要从字符串中获得大写字符流。有两种方法:
word.toUpperCase().chars()word.chars().map(Character::toUpperCase)哪种方法更好?
P.S.根据注释中的要求,我指定了使用代码的整个方法:
private int[] toSortedChars(final String word) {
return word.chars().map(Character::toLowerCase).sorted().toArray();
}该方法用于求解习题:https://exercism.org/tracks/java/exercises/anagram。
发布于 2021-09-06 07:41:04
第一种方法更好。
Character.toUpperCase的Javadoc提到:
一般来说,应该使用
()将字符映射为大写。字符串案例映射方法比字符案例映射方法有几个优点。字符串案例映射方法可以执行区域敏感映射、上下文敏感映射和1:M字符映射,而字符大小写映射方法则不能。
您现在可能不考虑不同的语言而不是英语,但在某些时候,您可能希望支持其他语言,然后大写变得更加困难,因为字符不能单独大写。
例如:"Straße".toUpperCase()返回"STRASSE" (甚至在英语区域设置中),如果要将每个字符分别转换为大写,则不能复制这种行为。
(注意:最近,在德语中添加了大写的“声母”,但除了大写的名字外,它还没有被频繁使用。)
https://stackoverflow.com/questions/69070478
复制相似问题