メソッドのJavaドキュメントString[] Java.io.File.list(FilenameFilter filter)
これを返品の説明に含めます。
ディレクトリが空の場合、またはフィルターによって名前が受け入れられなかった場合、配列は空になります。
同様のことを行い、長さ0を持つようにString配列(または他の配列)を初期化するにはどうすればよいですか?
他の人が言ったように、
new String[0]
実際に空の配列を作成します。ただし、配列には良い点が1つあります。配列のサイズは変更できないため、常に同じ空の配列参照を使用できます。したがって、コードでは次を使用できます。
private static final String[] EMPTY_ARRAY = new String[0];
そして、必要なたびにEMPTY_ARRAY
を返すだけです。毎回新しいオブジェクトを作成する必要はありません。
String[] str = new String[0];
?
String[] str = {};
しかし
return {};
型情報が欠落しているため機能しません。
[OK]を私は実際に答えを見つけたが、とにかくSOに質問を「インポート」すると思った
String[] files = new String[0];
またはint[] files = new int[0];
Org.Apache.commons.lang3からArrayUtils.EMPTY_STRING_ARRAYを使用できます
import org.Apache.commons.lang3.ArrayUtils;
class Scratch {
public static void main(String[] args) {
String[] strings = ArrayUtils.EMPTY_STRING_ARRAY;
}
}
あなたがしなければならないのは
String str = "";
String[] newString = new String[str.length()];
これにより、空の文字列配列が得られます。
どうもありがとう!この答えは、文字列が空であり、どのように機能するかを示すため、依然として重要です。たとえば、整数0は整数であるため、int配列のサイズを変更したり、別のサイズに変更したりすることはできません。 ArrayIndexOutOfBoundsExceptionエラーが発生します。 Stringとintには違いがあるはずです。ただし、Stringには二重引用符が含まれており、サイズを変更できます。もちろん、もっと長い道のりです。 intと主にStringの間の推論をまだ示しています。
Nullを返さない関数を作成し、代わりに空の配列を返します。理解するには、以下のコードを参照してください。
public static String[] getJavaFileNameList(File inputDir) {
String[] files = inputDir.list(new FilenameFilter() {
@Override
public boolean accept(File current, String name) {
return new File(current, name).isFile() && (name.endsWith("Java"));
}
});
return files == null ? new String[0] : files;
}