9
votes

Convertir les résultatsset Java en une matrice de string

J'écris un programme qui interrogea une base de données MS Access, renvoie la requête en tant que jeu de résultats, puis je souhaite convertir finalement ce résultat défini dans une matrice de chaîne, de sorte que je puisse le transmettre dans le constructeur d'un Swing JCOMBOBOX - de sorte que la combinaison indiquera les éléments renvoyés par la requête.

J'ai pu stocker les lignes du résultat défini dans une arrachelist, puis convertir cette arrayliste en une matrice d'objet et que le ComboBox va listera le corrects, mais comme objets. Je ne peux tout simplement pas lancer cette arrayliste à un tableau à chaîne. Est-ce que quelqu'un sait si cela est possible? Voici une partie de mon code ... p>

java.lang.ArrayStoreException
    at java.lang.System.arraycopy(Native Method)
    at java.util.Arrays.copyOf(Unknown Source)
    at java.util.ArrayList.toArray(Unknown Source)
    at kidsfirstdb.Main.main(Main.java:23)


0 commentaires

3 Réponses :


3
votes

String [] = arrLocations locations.toArray (new String [0]);

Le code ci-dessus convertir liste de chaînes à un tableau String. Dans votre cas, vous créez Liste des objets de sorte que vous ne pouvez pas convertir directement au tableau String. En général, vous avez 2 choix:

  1. définir un premier temps votre liste comme une liste de chaînes et lors du remplissage de la liste convertir vos valeurs en chaînes (éther en faisant l'objet # toString ou extraction / création de valeur de chaîne meningful) et magasin qui dans votre liste, par exemple dans votre code faire Chaîne value = rs.getObject (i) .toString ();
  2. Si vous ne le faites pas à l'étape 1, alors vous devrez allouer un tableau de chaînes, boucle à travers votre liste, convertir la valeur actuelle en chaîne et le coller dans un tableau. Je voudrais aller avec l'option 1.

    Tout comme une note de côté - les méthodes Java doivent commencer par lettre minuscule


4 commentaires

J'ai essayé avant, et il me donnait: Java.Lang.ArraystoreException à java.lang.System.arraycopy (Native Method) à java.util.Arrays.copyOf (Source inconnue) à java.util.ArrayList.toArray ( Source inconnue) à kidsfirstdb.Main.main (Main.java:23)


Un bon travail DroidIn. Mais le fait est que que la liste renvoyée est une liste de la liste. Même si nous utilisons toString () ou rs.getString (). Il ne fonctionne pas pour la liste renvoyée par la méthode.


Il est conceptuel. L'idée est - si vous avez besoin d'oranges, ne commencez pas avec des pommes


Je cent pour cent d'accord. Mais il faut savoir les pommes et les oranges. Et il semble qu'il ne savait pas que, par conséquent, il a exception et il n'a pas pu trouver la cause.



6
votes
    ArrayList<String> al = new ArrayList<String>();
    while (rs.next()) {
            ArrayList<String> record = new ArrayList<String>();
            for (int i = 1; i <= columns; i++) {
                    String value = rs.String(i);
                    record.add(value);
            }
            String value = methodWhichConvertsArrayListToStringTheWayYouNeedItFormatted(record);
            al.add(value);
    }        
    return al;

3 commentaires

Merci de votre aide. J'ai essayé ce que vous suggérez, et il me semble encore être obtenir ces exceptions sur String [] = arrLocations locations.toArray (new String [0]);


Son parce que votre revenu ArrayList, n'est pas la liste de chaînes, mais de ArrayList, et que ArrayList est d'avoir des chaînes finalement.


J'ai modifié mon message pour inclure un code, ce qui pourrait vous aider. À votre santé.



5
votes

Pourquoi ne pas utiliser rs.getString (). Je recommande de ne pas le faire bien. Mais cela résoudrait votre problème. Je veux dire seulement avec traiterai chaîne depuis le début. Exemple,

String[][] arrLocations = locations.toArray(new String[locations.size()][0]);


0 commentaires