2012-09-20 14 views
1

Je dois ajouter des valeurs dans un tableau int.Conversion de chaîne en nombre entier en nombre

int[] placeHolders[]; 

Maintenant, je ne connais pas la taille des éléments à ajouter dans ce tableau. Je l'ajoute pendant que j'ai l'entrée. Je veux savoir comment puis-je convertir mes valeurs de sortie de chaîne en int array à plusieurs reprises.

Entrée: 23.45.1.34

J'utilise la chaîne tokenize sur. pour obtenir des jetons

Value = Integer.parseInt(strtokObject.nextElement().toString()); 

J'utilise la ligne ci-dessus pour ajouter int à la valeur unique int, mais si je dois ajouter int éléments à un tableau comme pousser je suis incapable de le faire dans le vecteur (C++ STL).

+0

Montrez-nous le code complet. – alfasin

+1

en fait vous ne pouvez pas pousser des éléments dans les tableaux java, utilisez plutôt Lists/ArrayLists. En utilisant string.split (".") Vous obtiendrez également un tableau de chaînes représentant vos nombres. – Onheiron

+1

Utilisez une ArrayList plutôt qu'une déclinaison de tableau normale. – Smokie

Répondre

1

Je suppose que votre chaîne d'entrée est input.

Ainsi, vous pouvez faire quelque chose comme ceci:

String[] inputStrs = input.split("\\."); 

et

//Do a while loop 
placeholder[i] = Integer.ParseIne(inputStrs[i]); 
+0

Assurez-vous d'échapper à ce '.' ('\\.'), sinon vous allez scinder sur TOUS les caractères ('String.split()' prend une expression régulière). – Thor84no

5
String str = "23.45.1.34"; 
String sarr = str.split("\\."); 
int[] result = new int[sarr.length]; 
for (int i = 0; i < sarr.length; i++) { 
    result[i] = Integer.parseInt(s); 
} 
+0

Utilisation: \t ArrayList placeHolders; int valeur = Integer.parseInt (strtokObject.nextElement(). ToString()); cageObject.placeHolders.add (valeur); Toujours obtenir errorsException: java.lang.NullPointerException – CodeMonkey

2

Lorsque vous ne connaissez pas la taille d'un jeu de données à stocker dans un tableau, vous devez utiliser une implémentation de java.util.List<E> tels que ArrayList. Vous pouvez ensuite utiliser List # toArray pour convertir votre liste en tableau si nécessaire.

2

Je voudrais utiliser myString.split("\\.") pour retourner un String[], créer une taille égale int[], puis analyser chaque chaîne à un int plutôt que d'utiliser un tokenizer. Vous pouvez également connaître la taille de placeHolders en comptant '.' Dans la chaîne (par exemple, myString.replaceAll("[^\\.]", "").length()) (évidemment ajouter un à ce nombre).

0

Vous pouvez utiliser ArrayList<Integer> qui est similaire à vecteur dans C++. ajouter à cela en utilisant aList.add(num);

si vous voulez un tableau que vous pouvez à la fin utiliser la méthode toArray.

Integer[] arr = aList.toArray(new Integer[0]); 
Questions connexes