Avatar billede mads1987 Nybegynder
31. oktober 2004 - 09:51 Der er 11 kommentarer og
1 løsning

Gem i array

Hej, jeg har lige for et par dage siden kastet mig ud i Java.

Er begyndt at lave et "Sims" spil bare for at arbejde lidt med koden, den eneste måde at lære det på.

Det er selvfølgelig lidt mindre avanceret end det virkelige spil, og ser foreløbig således ud:

class Sims3 {
        public static void main(String[] arguments) {

              // Argumentet indfanges
              String indput = arguments[0];

              // Simsens ejendele
              String[] ejendele = {"pude","dyne"};
        int antal_ejendele = ejendele.length;

          // Ejendele skrive til brugeren
        if(indput.equals("vis sims")){
            for(int i = 0; i < antal_ejendele; i++){
                System.out.println("Dine ejendele er: " + ejendele[i]);
}
}
}
}

Jeg ønsker nu at lave en funktion der hedder "køb", således at man kan købe nye ting til sin Sims. Jeg forestillede mig at man kunne tilføje ting til det allerede eksistrende array (ejendele)?

Hvordan løser jeg dette nemmest?
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:02 #1
Så bør du skifte fra et alimndligt array til en ArrayList !
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:04 #2
Den udvider sig nemlig dynamisk.

ArrayList list = new ArrayList();
list.add("pude");
list.add("dyne");
list.add("xxxx");
Avatar billede mads1987 Nybegynder
31. oktober 2004 - 10:08 #3
Vil du forklare nærmere? Og hvordan skriver jeg så nye værdier til min ArrayList?
Avatar billede mads1987 Nybegynder
31. oktober 2004 - 10:13 #4
Når jeg skriver nye værdier, mener jeg hvordan jeg tilføjer værdier fra min Kommando promt.
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:16 #5
Du læser en String ind og add'er den til listen.
Avatar billede mads1987 Nybegynder
31. oktober 2004 - 10:18 #6
Kan du vise et lille eksempel? Eller et link til et sted hvor der er et eksempel? Som sagt er jeg ikke helt hardcore.
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:26 #7
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      ...
      System.out.print("Indtast noget: ");
      String s = br.readLine();
      list.add(s);

hvor list er som ovenfor
Avatar billede mads1987 Nybegynder
31. oktober 2004 - 10:34 #8
Det kan godt være det er mig der er blank, men får en masse fejl i linien Buffered..

class Sims4 {
        public static void main(String[] arguments) {

                // Argumentet indfanges
                String indput = arguments[0];

                // Simsens ejendele
                String[] ejendele = {"pude","dyne", "Pude", "dyNe", "Hej"};
        int antal_ejendele = ejendele.length;

        // Ejendele skrive til brugeren
        if(indput.equals("vis sims")){
          for(int i = 0; i < antal_ejendele; i++){
          System.out.println("Dine ejendele er: " + ejendele[i]);
                                }
                }

              BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
             
                          ArrayList list = new ArrayList();
              list.add("pude");
              list.add("dyne");
              list.add("xxxx");

                  System.out.print("Indtast noget: ");
                  String s = br.readLine();
                        list.add(s);

        }
}
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:46 #9
Put det her aller øverst i dit program:

import java.io.*;
import java.util.*;
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:52 #10
Det her eksempel kører (og tror jeg ligner det du vil):

import java.util.*;
import java.io.*;

public class CollectToList {
    public static void main(String[] args) throws Exception {
        ArrayList list = new ArrayList();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        list.add("A");
        list.add("BB");
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.print("Indtast noget: ");
        String s = br.readLine();
        list.add(s);
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}
Avatar billede arne_v Ekspert
31. oktober 2004 - 10:52 #11
og et svar
Avatar billede mads1987 Nybegynder
08. november 2004 - 09:36 #12
Mange tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester