9 berichten aan het bekijken - 1 tot 9 (van in totaal 9)
  • Q:
    Bijdrager
    Erik

    [opgelost] Java: dynamische variabele-namen?

    Oeps, het is weer eens zo ver.

    In mijn Java app komen een aantal variabelen binnen (via HTML param).

    Deze heten var1, var2 var3, var4, etc. (altijd oplopend)

    Ik kan ze natuurlijk handmatig definieren in Java, maar ik wil de namen graag ‘berekenen’, dus bijvoorbeeld:

    AantalVariabelen = 10;
    int LusIndex;

    for (LusIndex = 1; LusIndex <= AantalVariabelen ; LusIndex++)
    {
    // Hieronder moet binnen deze lus de inhoud van de variabelen var1, var2, etc. komen

    System.out.println( “var”+LusIndex);
    }

    Maar dat samenvoegen van die variabelenaam (‘var’ + 1 moet de inhoud van ‘var1’ geven),
    heb ik nog nooit gedaan, en ik kom er ook niet echt uit.

    Kan iemand hier een antwoord op vinden?

    Thanks,

    Erik

    Bijdrager
    redmar

    zover ik weet is dat niet mogelijk maar je kunt natuurlijk altijd een array gebruiken;
    [code:1:fe707a211a]
    String var[] = new String[10];

    for(int i=0; i<var.length; i++)
    {
    var[i] = "bla" + String.valueOf(i);
    System.out.println(var[i]);
    }
    [/code:1:fe707a211a]
    Maar dit is puur Java (geen javascript want daar zou het misschien wel in kunnen)

    ps. Gibby Koldenhof familie van je?;)

    // Redmar

    Bijdrager
    Erik

    Redmar,

    Dank voor je snelle reactie!

    Met een Array gaat het niet lukken, maar ik zie wel iets anders in je code staan ‘String.valueOf(i)’.

    Ik denk dat ik daarmee aan de gang moet.

    Erik

    Inactief
    Anoniem

    Als ik je goed begrijp…: in ActionScript kun je soortgelijke acties doen met de eval() functie. Ik weet niet of deze ook bestaat in jouw gebruikte taaltje.

    Bijdrager
    Erik

    Ik kom er vooralsnog niet uit. Ik zal het even uitgebreider uitleggen:

    Het probleem is dat de variabelen vanuit de HTML binnenkomen, maar het aantal variabelen kan wisselen, dus bijvoorbeeld:[code:1:e02de42735]
    <param name="aantal_vars" value=2>
    <param name="var1 value" = "gegevens string 1">
    <param name="var2 value" = "gegevens string 2">
    [/code:1:e02de42735]
    of
    [code:1:e02de42735]
    <param name="aantal_vars" value=4>
    <param name="var1" value = "gegevens string 1">
    <param name="var2" value = "gegevens string 2">
    <param name="var3" value = "gegevens string 3">
    <param name="var4" value = "gegevens string 4">
    [/code:1:e02de42735]
    Deze variabelen zijn lange strings met in totaal 21 nummers, met spaties gescheiden.
    Iedere binnenkomende variabele wordt naar een array geconverteerd.

    De bedoeling is dat ik alle binnenkomende variabelen wil opslaan in een twee-dimensionaal array.
    Dit array ‘GrootArray” krijgt een variabel aantal rijen, maar een vast aantal kolommen (21).

    Nu het probleem nog een keer:
    Ik weet wel hoeveel <param …> er binnen komen (middels ‘aantal_vars’),
    maar nu moet ik nod die variabele namen binnen Java definieren op een dynamische wijze:
    [code:1:e02de42735]
    for(int i=1; i<= aantal_vars ; i++)
    {
    String ParameterNaam = ("var" + String.valueOf(i));
    String VariabeleNaam = ("var" + String.valueOf(i));

    String (DE WAARDE VAN: ‘VariabeleNaam’) = (getParameter(DE WAARDE VAN: ‘ParameterNaam’));
    }
    [/code:1:e02de42735]

    Ik wordt gek hier :oops: :cry: :x

    Bijdrager
    Tammo80

    [code:1:a3c7ac9043]int i=0;

    while ((a=getParameter("var")+String.valueOf(i++)))!=null)
    groteArray[i]=a.split(" ");
    [/code:1:a3c7ac9043]

    Bijdrager
    Tammo80

    Ik heb m’n ideetje van hierboven even uitgewerkt tot een werkende test (de enige manier om erachter te komen dat er een haakje miste). Te downloaden op http://www.tammo80.nl/files/paramtest.zip (mail even voor vragen, m’n ichat is hopeloos vastgelopen).

    Bijdrager
    Erik

    Tammo, je bent geweldig!!!
    Hij werkt, ik kan mijn GrootArray prachtig uitlezen!
    Geen rare fouten meer etc. heerlijk.

    Nogmaals, dank hiervoor,

    Erik

    Bijdrager
    Erik

    Nog even de uiteindelijke code:
    [code:1:66c515f1af]
    // Thanks to Tammo Jan (macosx.nl) for helping me building the large array:
    int i=1;
    String a;

    String grootArray[][];
    grootArray = new String[100][21];

    while ((a= getParameter("var_"+String.valueOf(i++))) != null)
    {
    grootArray[i-2]=a.split(" ");
    }[/code:1:66c515f1af]

9 berichten aan het bekijken - 1 tot 9 (van in totaal 9)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.