Avatar billede TinaH Nybegynder
04. september 2002 - 14:29 Der er 11 kommentarer og
1 løsning

indsætte i et array

Jeg har et array som bruger en konstruktor. Jeg har allerede oprettet nogle data i arrayet, men nu vil jeg vil gerne lave en metode således at man via keyboardet kan indtaste data som så bliver gemt på en plads i arrayet. Jeg mangler en syntaks til dette, nogen der kan hjælpe?

Min kode ser sådan ud:

public static void main (String[] args)
    {
        Person[]ejer = new Person[4];
   
        ejer[0] = new Person ("Christian Hansen", 43620976);
        ejer[1] = new Person (Andreas Hansen",43628797);

ejer.ny_person();
}

public class Person
{
    private String navn;
    private int nummer;
    public Person(String a_navn, int a_nummer)
    {
        navn=a_navn;
        nummer=a_nummer;
    }
}

public void ny_person()
{
?????????
}
Avatar billede soreno Praktikant
04. september 2002 - 14:45 #1
et eks kunne være:
      public static void main(String args[])
      {
    String navn = "";
    String nummer = "";
    int nr;
    BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
    try
    {
        System.out.print("Skriv dit navn: ");
        navn = input.readLine();
        System.out.print("Hvad er dit nummer: ");
        nummer = input.readLine();
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    nr = Integer.parseInt(nummer);
    System.out.println("[" + navn + "][" + nr + "]");
      }
Avatar billede cyberzed Nybegynder
04. september 2002 - 14:47 #2
øøøeh det du har lavet der opretter en ny Person på de to første plads i dit array "ejer", der er instantieret med 4 pladser. Hvis du kalder ejer.ny_person() så får du en fejl i compileren.
Avatar billede soreno Praktikant
04. september 2002 - 14:54 #3
for så at tilføje personen til dit array kunne du skrive:
ejer[2] = new Person (navn, nr);

det du vil med "ejer.ny_person()" forstår jeg heller ikke..
Avatar billede TinaH Nybegynder
04. september 2002 - 14:55 #4
til cyberzed: Ok, det var jeg ikke helt klar over. Nogen ideér til hvad jeg så kan gøre?
Til soreno: Jeg bliver nødt til at beholde den kode jeg allerede har skrevet for at den kan samarbejde med nogle andre metoder, så jeg kan ikke lave så meget om på den som du foreslår. Og jeg skal have koden ind i metoden public void ny_person() og ikke i main
Avatar billede TinaH Nybegynder
04. september 2002 - 14:57 #5
med ejer.ny_person() kalder jeg den metode som jeg gerne vil have indsættelseskoden ind i
Avatar billede soreno Praktikant
04. september 2002 - 14:59 #6
men hvordan skal ny_person() kunne gætte hvilken plads i arrayet den nye person skal være på ?
Avatar billede TinaH Nybegynder
04. september 2002 - 15:03 #7
det ved jeg ikke, jeg håbede at der var en kode til at gøre det
Avatar billede cyberzed Nybegynder
04. september 2002 - 15:28 #8
import java.io.*;

public class PersonTest
{
    public static void main (String[] args)
    {
        BufferedReader ind = new BufferedReader(new InputStreamReader(System.in));
        int perscounter = 0;
       
        Person[]ejer = new Person[4];
   
        ejer[perscounter++] = new Person ("Christian Hansen", 43620976);
        ejer[perscounter++] = new Person ("Andreas Hansen",43628797);
       
        while(true)
        {
            try
            {
                if(perscounter<4)
                {
                    String tempnavn = "";
                    String temptlf = "";
                   
                    System.out.println("Skriv navn");
                    tempnavn = ind.readLine();
                    System.out.println("Skriv tlf");
                    temptlf = ind.readLine();
               
                    ejer[perscounter++] = new Person (tempnavn, Integer.parseInt(temptlf));
                   
                    System.out.println("Navn: "+tempnavn+" Tlf: "+temptlf+" er nu indsat i arrayet på plads "+(perscounter-1));
                }
                else
                    System.exit(0);
            }
            catch(IOException IOE)
            {
                IOE.printStackTrace();
            }
        }
    }
}

public class Person
{
    private String navn;
    private int nummer;
   
    public Person(String a_navn, int a_nummer)
    {
        navn=a_navn;
        nummer=a_nummer;
    }
}
Avatar billede cyberzed Nybegynder
04. september 2002 - 15:28 #9
Det var da et svar, og ja det er sikkert slamkode :)
Avatar billede TinaH Nybegynder
04. september 2002 - 15:40 #10
Imponerende kode, det ser faktisk ud til at det virker
Avatar billede TinaH Nybegynder
04. september 2002 - 15:40 #11
Tak for hjælpen!
Avatar billede cyberzed Nybegynder
04. september 2002 - 16:04 #12
Det var da så lidt :) ved ikke om det er så imponerende, bare du kan finde rundt i det, så er målet vel nået :)
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