2

これを実行すると、

System.out.println("toUpperCase() on empty String:"+ "".toUpperCase());

空の文字列を返します。そんなことがあるものか?この場合、 toUpperCase() は失敗するはずですよね? ありがとう!

4

2 に答える 2

10

なぜ失敗する必要があるのですか?入力文字列の任意の文字を大文字に変換します。あなたの例では、「任意の文字」は 0 文字に相当します。

Javadoc は、空の文字列に対して失敗する必要があるとは言っていません。つまり、失敗するべきではありません。

デフォルトのロケールの規則を使用して、この String 内のすべての文字を大文字に変換します。このメソッドは toUpperCase(Locale.getDefault()) と同等です。

注:このメソッドはロケールに依存するため、ロケールを個別に解釈することを意図した文字列に使用すると、予期しない結果が生じる可能性があります。例としては、プログラミング言語識別子、プロトコル キー、および HTML タグがあります。たとえば、トルコ語ロケールで "title".toUpperCase() を実行すると、"T\u0130TLE" が返されます。ここで、'\u0130' はラテン語の大文字 I WITH DOT ABOVE 文字です。ロケールを区別しない文字列で正しい結果を得るには、toUpperCase(Locale.ENGLISH) を使用します。

戻り値:大文字に変換された文字列。

于 2015-10-10T11:34:08.597 に答える
1

空の文字列は null ではないため、すべての String メソッドを呼び出すことができます。

于 2015-10-11T19:46:01.497 に答える