45

splitnullを返すことは可能String[]ですか?不必要なチェックをせずに、コード内で可能な限り防御的になりたいので、興味があります。コードは次のとおりです。

String[] parts = myString.split("\\w");  

partsポストスプリットを使用する前にヌルチェックを実行する必要がありますか?

4

4 に答える 4

56

nullを返すことはありません。よくわからない場合は、メソッドのjavadocを常に確認する必要があります。たとえばString#split(String)

splitこのメソッドは、2つの引数のメソッドを呼び出すかのように機能します

...そしてString#split(String,int)言う:

式が入力のどの部分とも一致しない場合、結果の配列には1つの要素、つまりこの文字列のみが含まれます。

Javadocから、発生する可能性のある例外の種類、さらに重要なことに、それらの例外がスローされた理由を確認することもできます。また、チェックする非常に重要なことの1つは、クラスがスレッドセーフであるかどうかです。

于 2011-08-01T17:31:28.663 に答える
7

APIが不明な場合は、Javaソースコードをダウンロードすることをお勧めします。ここにあるすべての答えは答えを示しているだけですが、実際に自分で確認する必要があります。ここからJavaソースコードをダウンロードできます(ページの下部近くをご覧ください)。

ソースコードに従うことで、最終的にはになりますString[] Pattern.split(CharSequence input, int limit)。戻り値は、が呼び出されるnull以外から取得ArrayListされます。nullを返しません:リストが空の場合、空の配列が返されます。toArraytoArray

つまり、最終的には、nullをチェックする必要はありません。

于 2011-08-01T17:44:05.073 に答える
2

いいえ、パーツのヌルをチェックする必要はありません。

于 2011-08-01T17:27:42.647 に答える
1

Splitメソッドは、メソッドの先頭でこれを行うPatter.splitメソッドを呼び出します。

ArrayList<String> matchList = new ArrayList<String>();

そして最後にmatchList.toArray()を実行して配列を返します。

したがって、nullをテストする必要はありません。

于 2011-08-01T17:30:44.650 に答える