PDA

View Full Version : [Java] convertire Object[] o Vector in String[]


Killian
28-05-2005, 17:28
Sto impazzendo :muro:

Devo utilizzare un metodo che accetta in ingresso un parametro di tipo String[], io questo array di stringhe non posso dichiararlo subito perchè non so a priori il numero di elementi, infatti utilizzo un Vector, che mi costruisco a run-time. Come passo da Vector ad un array di stringhe? Riesco a passare ad una variabile di tipo Object[] con il metodo Vector.toArray(), ma poi mi blocco; per i vettori esiste il metodo toString(), ma restituisce una stringa unica (presumo la concatenazione degli elementi del vettore), ma non va bene per me, mi serve proprio un array di stringhe :muro:

Qualcuno può aiutarmi?

kingv
28-05-2005, 19:07
non occorre sapere il numero degli elementi che comporranno l'array per passarlo come argomento a un metodo:

public void metodo(String[] argomento)

è una dichiarazione perfettamente legale.

all'interno poi puoi conoscere la lunghezza dell'array argomento con l'attributo length:

int lunghezza = argomento.length;

Killian
29-05-2005, 16:10
mi sono espresso male forse, io ho la necessità di passare da un Vector ad un array di stringhe


public String[] metodo(){
Vector vettore;
...
//popolo il vettore
...
//arrayStringhe deve contenere gli elementi del vettore, nello stesso ordine
...
return arrayStringhe;
}


Come caspita faccio?

Avevo pensato ad una cosa del genere:


String[] arrayStringhe = new String[vettore.size()];
for(int i = 0; i < vettore.size(); i++){
arrayStringhe[i] = vettore.get(i);
}

ma non va bene perchè vettore.get(i) restituisce un valore di tipo Object (vedere questo link (http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html) )

Killian
29-05-2005, 19:07
ho risolto.


Ora però ho un'altro problema, ma apro un'altra discussione

kingv
29-05-2005, 19:50
non avevo capito.

come penso avrai già capito il problema è aggirabile castando il risualtato di get() al tipo String (se sono oggetti String all'interno del Vector, naturalemente)

arrayStringhe[i] = (String)vettore.get(i);