Les Java Docs de la méthodeString[] Java.io.File.list(FilenameFilter filter)
inclut ceci dans la description des retours:
Le tableau sera vide si le répertoire est vide ou si aucun nom n'a été accepté par le filtre.
Comment est-ce que je fais une chose semblable et initialise un tableau de chaîne (ou n'importe quel autre tableau d'ailleurs) pour avoir une longueur 0?
Comme d'autres l'ont dit,
new String[0]
va en effet créer un tableau vide. Cependant, il y a une bonne chose à propos des tableaux: leur taille ne peut pas changer, vous pouvez donc toujours utiliser la même référence de tableau vide. Donc dans votre code, vous pouvez utiliser:
private static final String[] EMPTY_ARRAY = new String[0];
et retournez simplement EMPTY_ARRAY
à chaque fois que vous en avez besoin - il n'est pas nécessaire de créer un nouvel objet à chaque fois.
String[] str = new String[0];
?
String[] str = {};
Mais
return {};
ne fonctionnera pas car les informations de type sont manquantes.
Ok, j'ai effectivement trouvé la réponse, mais je pensais que je pourrais "importer" la question dans SO de toute façon.
String[] files = new String[0];
ouint[] files = new int[0];
Vous pouvez utiliser ArrayUtils.EMPTY_STRING_ARRAY à partir de org.Apache.commons.lang3.
import org.Apache.commons.lang3.ArrayUtils;
class Scratch {
public static void main(String[] args) {
String[] strings = ArrayUtils.EMPTY_STRING_ARRAY;
}
}
Tout ce que tu dois faire est
String str = "";
String[] newString = new String[str.length()];
Cela donnera un tableau de chaînes vide.
Merci ItsPete! Cette réponse est toujours importante car elle montre comment la chaîne est vide et comment cela fonctionne. Par exemple, un tableau int ne peut pas redimensionner ou changer de taille à cause de ce 0 qui est un nombre entier. Il y aura une erreur ArrayIndexOutOfBoundsException. Il doit y avoir une différence entre String et int. Cependant, encore une fois, String a les guillemets doubles et travaille à redimensionner. Bien sûr, c'est un moyen plus long. Il montre toujours le raisonnement entre int et principalement String.
Créez une fonction qui ne renverra pas null à la place, retournera un tableau vide que vous pourrez lire sous le code pour comprendre.
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;
}