102 votes

ajoute une chaîne de caractères au tableau de chaînes de caractères

Je suis nouveau en Java et j'ai donc besoin d'un peu d'aide.

J'ai

String [] scripts = new String [] ("test3","test4","test5");

et je veux ajouter de nouvelles chaînes ( chaîne1,chaîne2) à ce tableau ( scripts) pour des exemples

String string1= " test1"
String string2 = "test2"

Je veux ajouter la nouvelle chaîne non pas dans l'init mais dans une phase ultérieure.

Comment puis-je le faire ?

154voto

Abubakkar Rangara Points 6811

Vous ne pouvez pas redimensionner un tableau en java.

Une fois que la taille du tableau est déclarée, elle reste fixe.

Au lieu de cela, vous pouvez utiliser ArrayList qui a une taille dynamique, ce qui signifie que vous n'avez pas besoin de vous soucier de sa taille. Si votre liste de tableaux n'est pas assez grande pour accueillir de nouvelles valeurs, elle sera automatiquement redimensionnée.

ArrayList<String> ar = new ArrayList<String>();
String s1 ="Test1";
String s2 ="Test2";
String s3 ="Test3";
ar.add(s1);
ar.add(s2);
ar.add(s3);

String s4 ="Test4";
ar.add(s4);

23voto

Nambari Points 42066

D'abord, ce code ici,

string [] scripts = new String [] ("test3","test4","test5");

devrait être

String[] scripts = new String [] {"test3","test4","test5"};

Veuillez lire ce tutoriel sur Tableaux

Deuxièmement,

Les tableaux sont de taille fixe, vous ne pouvez donc pas ajouter de nouvelles chaînes de caractères au tableau ci-dessus. Vous pouvez remplacer les valeurs existantes

scripts[0] = string1;

(ou)

Créez un tableau avec une taille puis continuez à ajouter des éléments jusqu'à ce qu'il soit plein.

Si vous voulez des tableaux redimensionnables, pensez à utiliser Liste de tableaux .

10voto

adeel iqbal Points 476

Il faudrait écrire une méthode pour créer un tableau temporaire et le copier comme suit

public String[] increaseArray(String[] theArray, int increaseBy)  
{  
    int i = theArray.length;  
    int n = ++i;  
    String[] newArray = new String[n];  
    for(int cnt=0;cnt<theArray.length;cnt++)
    {  
        newArray[cnt] = theArray[cnt];  
    }  
    return newArray;  
}  

ou Le Liste de tableaux serait utile pour résoudre votre problème.

6voto

CODE FISH Points 2246

Comme beaucoup de réponses le suggèrent, la meilleure solution est d'utiliser ArrayList. La taille d'ArrayList n'est pas fixe et elle est facilement gérable.

Il s'agit d'une implémentation de l'interface List dans un tableau redimensionnable. Elle implémente toutes les opérations optionnelles de la liste et autorise tous les éléments, y compris les nullités. En plus d'implémenter l'interface List, cette classe fournit des méthodes pour manipuler la taille du tableau qui est utilisé en interne pour stocker la liste.

Chaque instance de ArrayList a une capacité. La capacité est la taille du tableau utilisé pour stocker les éléments de la liste. Elle est toujours au moins aussi grande que la taille de la liste. Lorsque des éléments sont ajoutés à une ArrayList, sa capacité augmente automatiquement.

Notez que cette implémentation n'est pas synchronisée.

ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test1");
scripts.add("test2");
scripts.add("test3");

4voto

Grant Timmerman Points 351

Comme les tableaux Java contiennent un nombre fixe de valeurs, vous devez créer un nouveau tableau d'une longueur de 5 dans ce cas. Une meilleure solution serait d'utiliser un tableau Liste de tableaux et simplement ajouter dans le tableau.

Exemple :

ArrayList<String> scripts = new ArrayList<String>();
scripts.add("test3");
scripts.add("test4");
scripts.add("test5");

// Then later you can add more Strings to the ArrayList
scripts.add("test1");
scripts.add("test2");

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X