tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1267
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Copia Copia ist offline Mitglied
    Registriert seit
    Apr 2010
    Beiträge
    17
    Hallo zusammen,

    ich habe ein Textfeld, welches grundsätzlich Daten enthält, die in einem Array gespeichert werden sollen. Also nehme ich mir den String mit textfield.getText() und splitte ihn bei jedem Komma. Dann habe ich ein String[]. Jetzt kann aber der Typ des Arrays in der Datenbank beliebig sein, also Integer[], Boolean[], ... Wie wandel ich jetzt sinnvoll den String[] in die entsprechenden Typen um?

    So mache ich das derzeit in die Umwandlung in einen Integer[]:


    Code :
    1
    2
    3
    4
    5
    6
    
    String valueList = textField.getText();
                    String []values = valueList.split(",");
                    Integer[] intVals = new Integer[values.length];
                    for(int i = 0; i < values.length; i++){
                            intVals[i] = Integer.valueOf(values[i]);
                    }

    Muss ich diese Schleife jetzt abhängig vom Typ durchlaufen, damit ich das entsprechende "valueOf()" benutzen kann? Das scheint mir so hässlich :-/
    Geändert von Copia (22.12.10 um 12:19 Uhr)
     

  2. #2
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Hm, sind die Daten denn willkuerlich sortiert? Oder hast du immer die gleiche Reihenfolge zb: int, int, date, varchar
    und dann wieder von vorne. Weil irgendwie musst du ja bestimmen, welcher Wert wo in die Datenbank gehoert?
     
    Waere super wenn ihr euren Code in dieser Form einfuegt:
    [JAVA]System.out.println("Test :)");[/JAVA]
    wird zu:
    Code java:
    1
    
    System.out.println("Test :)");
    Tabs sind uebrigens keine Feinde :)
    Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
    Danke :D

  3. #3
    MiMi MiMi ist offline Mitglied Smaragd
    Registriert seit
    Sep 2007
    Beiträge
    1.177
    Wuah doppelpost sry (loeschen bitte )
     
    Waere super wenn ihr euren Code in dieser Form einfuegt:
    [JAVA]System.out.println("Test :)");[/JAVA]
    wird zu:
    Code java:
    1
    
    System.out.println("Test :)");
    Tabs sind uebrigens keine Feinde :)
    Der "Erledigt Button" beisst net :) Und der "Danke Button" ist auch nicht nur zur zierde
    Danke :D

  4. #4
    Copia Copia ist offline Mitglied
    Registriert seit
    Apr 2010
    Beiträge
    17
    Ok, war wohl ein bisschen unverständlich von mir
    In einem Textfeld sollten nur die gleichen Typen stehen. D.h. entweder stehen da nur durch Komma getrennte Integer oder nur Strings, etc.
    Die werden dann auch so als Array in der Datenbank in einem Feld gespeichert. Das heißt, das Feld in der Datenbank ist tatsächlich ein varchar[] oder int[]...

    Toll wäre es ja, wenn man auf einem Klassenobjekt ValueOf() aufrufen könnte, aber ich finde so eine Methode nicht Also ich hab einen Class<?> type, in dem dann zB drin steht Integer[].class, aber auf type kann ich kein valueOf() aufrufen
    (Wobei... wenn ich jetzt recht überlege, würde das mit dem valueOf auf Integer[].class eh nicht funktionieren, da die einzelnen Werte ja Integer sind und keine Integer[] )

    Noch mal zum Verständnis: Eine mögliche Lösung wäre:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
                    String valueList = textField.getText();
                    String []values = valueList.split(",");
                    Object[] vals = null;
                    
                    Class<?> type1 = cellModel.getCellClass();
                    
                    if(type1 == Integer[].class) {
                            vals = new Integer[values.length];
                            for(int i = 0; i < values.length; i++){
                                    vals[i] = Integer.valueOf(values[i]);
                            }
                    } else if(type1 == Boolean[].class) {
                            vals = new Boolean[values.length];
                            for(int i = 0; i < values.length; i++){
                                    vals[i] = Boolean.valueOf(values[i]);
                            }
                    } else [...]
    Geändert von Copia (22.12.10 um 12:28 Uhr)
     

Ähnliche Themen

  1. CSV-String in Array umwandeln
    Von DaRealMC im Forum PHP
    Antworten: 7
    Letzter Beitrag: 05.02.10, 14:49
  2. ASCII-Code in entsprechendes Zeichen umwandeln
    Von FunkyMonkey im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 22.08.07, 20:37
  3. String in array umwandeln
    Von meiner0815 im Forum PHP
    Antworten: 2
    Letzter Beitrag: 23.02.06, 16:29
  4. array in string umwandeln
    Von gwaan im Forum Java
    Antworten: 3
    Letzter Beitrag: 01.11.05, 12:16
  5. String Array in Integer Array umwandeln
    Von hankthetank im Forum Java
    Antworten: 8
    Letzter Beitrag: 06.06.05, 10:07