如何在Java中的空字符串上应用toUpperCase()?

Gni*_*ruT 2 java string language-concepts

我以为如果我跑这个

System.out.println("toUpperCase() on empty String:"+ "".toUpperCase());
Run Code Online (Sandbox Code Playgroud)

它返回一个空字符串.怎么可能?toUpperCase()在这种情况下应该失败不是吗?谢谢!

Era*_*ran 9

它为什么要失败?它将输入String的任何字符转换为大写.在您的示例中,"任何字符"相当于0个字符.

Javadoc没有说它应该为一个空String失败,这意味着它不应该失败:

使用默认语言环境的规则将此String中的所有字符转换为大写.此方法等效于toUpperCase(Locale.getDefault()).

注意:此方法对语言环境敏感,如果用于要独立解释语言环境的字符串,则可能会产生意外结果.示例是编程语言标识符,协议密钥和HTML标记.例如,土耳其语语言环境中的"title".toUpperCase()返回"T\u0130TLE",其中"\ u0130"是带有DOT ABOVE字符的LATIN CAPITAL LETTER I.要获取区域设置不敏感字符串的正确结果,请使用toUpperCase(Locale.ENGLISH).

返回: String,转换为大写.