PDA

View Full Version : [Java] Convertire stringa in un array di interi


Matro
24-04-2006, 18:03
Esiste qualche metodo che mi permetta di convertire una stringa in un array di interi?
Esempio, ho la stringa "38 56 73 21", dovrei avere un array di interi da 4 elementi coi numeri presenti nella stringa. Un pò come l'array args nel main, quando gli si passano i parametri!

Grazie ;)

andbin
24-04-2006, 18:40
Esiste qualche metodo che mi permetta di convertire una stringa in un array di interi?
Esempio, ho la stringa "38 56 73 21", dovrei avere un array di interi da 4 elementi coi numeri presenti nella stringa. Un pò come l'array args nel main, quando gli si passano i parametri!Un metodo apposito non esiste ma puoi realizzarne uno in modo molto semplice:
public static int[] parseIntArray (String str)
{
String[] vstr = str.split ("\\s+");
int[] vint = new int[vstr.length];

for (int i = 0; i < vstr.length; i++)
vint[i] = Integer.parseInt (vstr[i]);

return vint;
}Il codice è valido per Java 1.4 o superiore e, nota bene, può lanciare delle eccezioni di tipo unchecked (in particolare NumberFormatException).

Fenomeno85
24-04-2006, 18:41
public static void main(String[] args) {
String prova = "12 34 54";
String sup[] = new String[3];
int []value = new int [3];
sup = prova.split(" ");
for (int i=0;i<3;i++)
value[i] = Integer.parseInt(sup[i]);
}


~§~ Sempre E Solo Lei ~§~

Matro
25-04-2006, 10:36
Ho visto che posso usare anche la classe StringTokenizer, che fa ne più ne meno quello che avete scritto voi.

Grazie ;)

andbin
25-04-2006, 18:38
Ho visto che posso usare anche la classe StringTokenizerCerto, è vero. Volendo riscrivere il metodo che ho postato prima usando però StringTokenizer, lo scriverei così:
import java.util.*;

public static int[] parseIntArray2 (String str)
{
StringTokenizer strTok = new StringTokenizer (str, "\t ");

int size = strTok.countTokens ();
int[] vint = new int[size];

for (int i = 0; i < size; i++)
vint[i] = Integer.parseInt (strTok.nextToken ());

return vint;
}Naturalmente scegli quello che ti è più comodo e utile. ;)