Jeg*_*ovs 3 java string java-stream
我们需要从大写字符串中获取字符流。有两种方法:
word.toUpperCase().chars()
word.chars().map(Character::toUpperCase)
哪种方法更好?
PS 按照评论中的要求,我指定了使用代码的整个方法:
private int[] toSortedChars(final String word) {
return word.chars().map(Character::toLowerCase).sorted().toArray();
}
Run Code Online (Sandbox Code Playgroud)
解决练习时使用的方法: https ://exercism.org/tracks/java/exercises/anagram
第一种方法比较好。
\nCharacter.toUpperCase 的 Javadoc 提到:
\n\n\n一般来说,应该使用 String.toUpperCase() 将字符映射为大写。字符串大小写映射方法比字符大小写映射方法有几个优点。字符串大小写映射方法可以执行区域设置敏感映射、上下文敏感映射和 1:M 字符映射,而字符大小写映射方法则不能。
\n
您现在可能不会考虑与英语不同的语言,但在某些时候您可能想要支持其他语言,然后大写变得更加困难,因为字符不能再单独大写。
\n例如:"Stra\xc3\x9fe".toUpperCase()返回"STRASSE"(即使在英语语言环境中),如果将每个字符分别转换为大写,则无法复制这种行为。
(注:最近,德语中添加了大写字母“\xc3\x9f”,但除了大写名称外,它还不常用。)
\n