web-dev-qa-db-fra.com

ajouter une chaîne à un tableau de chaînes

Duplicate possible:
comment ajouter de nouveaux éléments à un tableau String []?

Je suis nouveau dans Java j'ai donc besoin de 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 la phase ultérieure

Comment je peux le faire ?

75
user1365697

Vous ne pouvez pas redimensionner un tableau en Java.

Une fois la taille du tableau 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 à 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);
120
Abubakkar

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 Arrays

Seconde,

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

scripts[0] = string1;

(ou)

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

Si vous voulez des tableaux redimensionnables, pensez à utiliser ArrayList .

18
kosa

vous auriez à écrire une méthode pour créer un tableau temporaire, puis le copier comme

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 ArrayList serait utile pour résoudre votre problème.

9
adeel iqbal

La plupart des réponses suggérant une meilleure solution consiste à utiliser ArrayList. La taille de ArrayList n'est pas fixe et est facilement gérable.

C'est une implémentation de tableau redimensionnable de l'interface List. Implémente toutes les opérations de liste facultatives et autorise tous les éléments, y compris null. En plus d'implémenter l'interface List, cette classe fournit des méthodes pour manipuler la taille du tableau 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 dans la liste. Il est toujours au moins aussi grand que la taille de la liste. Lorsque des éléments sont ajoutés à une liste de tableaux, 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");
5
code_fish

Étant donné que 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 consisterait à utiliser un ArrayList et simplement add chaînes 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");
4
Grant Timmerman