Quantcast

Pomoć u izradi zadatka

Laske16

Početnik
Poruka
8
Pozdrav svima! Potrebna mi je pomoć u izradi zadatka u kojem je potrebno napraviti logiku koja će iz ovog zapisa izvući pojedinačne podatke:

  • ime,
  • prezime,
  • datum rođenja,
  • mesto rođenja.
U ovom kodu trebam uraditi sljedeće:
- Deklaracija i instanciranje liste treba da bude van for-petlje, tj. na početku glavnog programa.

- Kada odvojite ime, prezime, mesto i datum rođenja iz početnog String-a, to će Vam biti argumenti konstruktora klase Person.

- Ne treba da u listu posebno ubacujete imena, prezimena, datume i mesta. Jedina lista koja Vam je potrebna je lista osoba tj. lista objekata klase Person.

- Posle pravljenja objekta klase Person, njega treba ubaciti u listu osoba.

- Na samom kraju glavne klase treba ispisati listu osoba.
 

Prilozi

  • netbeans64_SNMPOEPW1x.png
    netbeans64_SNMPOEPW1x.png
    68,6 KB · Pregleda: 47
  • netbeans64_SoJdZja6c5.png
    netbeans64_SoJdZja6c5.png
    62,3 KB · Pregleda: 42

cronnin

Poznat
Moderator
Poruka
8.640
Можда си превише закомпликовао.
Најпре сплитуј само по размакници (space) да раставиш овај улазни string на редове. Онда покрени петљу и извлачи један по један ред.
Онда у новој, малој унутрашњој петљи (int j = 0; j < 4 ; j++), сплитуј такве редове по тачка и коса црта критеријуму и упиши те вредности у променљиве. Додај те 4 променљиве и у main пре свега. Стрингови без проблем иду, једини ти је проблем трећа ставка за коју мораш да декларишеш:
Kod:
DateTimeFormatter inputFormatter = DateTimeFormatter.ofPattern("ddMMyyyy");

па онда доле у самој петљи:
Kod:
datumRodjenja =  LocalDate.parse(jedanRed[2], inputFormatter);

Када ти се заврши унутрашња петља, онда креирај објекат класе Person са тим параметрима и одмах га упиши у Array листу:
Kod:
 Person persona = new Person(ime, prezime, datumRodjenja, mjestoRodjenja);
listaPersona.add(persona);

Ту завршаваш и спољну петљу.
 
Poslednja izmena:

cronnin

Poznat
Moderator
Poruka
8.640
Моја грешка. Како у једном реду има само 4 ставке, нема потребе за унутрашњом петљом која ће да иде од 0 до 3. То треба аутоматски да се додели.



Person.java
Kod:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class Person {
  
    String ime;
    String prezime;
    LocalDate datumRodjenja;
    String mjestoRodjenja;
    DateTimeFormatter izlazniFormatDatuma = DateTimeFormatter.ofPattern("dd MMM yyyy");
  
    public Person(String ime, String prezime, LocalDate datumRodjenja, String mjestoRodjenja) {
        this.ime = ime;
        this.prezime=prezime;
        this.datumRodjenja = datumRodjenja;
        this.mjestoRodjenja = mjestoRodjenja;
    }
  
    public void stampajRed() {
        System.out.printf("%-10s %-15s %-20s %-10s\n",
                this.ime,
                this.prezime,
                this.datumRodjenja.format(izlazniFormatDatuma),
                this.mjestoRodjenja);
    }
  
    public static void stampajZaglavlje() {
        System.out.printf("%-10s %-15s %-20s %-10s\n", "ime", "prezime", "datum rodjenja", "grad");
        System.out.printf("-----------------------------------------------------------\n");
    }
  
}


Laske1.java

Kod:
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;

public class Laske1 {

    public static void main(String[] args) {
      
        ArrayList<Person> listaPersona = new ArrayList<Person>();
        DateTimeFormatter ulazniFormatDatuma = DateTimeFormatter.ofPattern("ddMMyyyy");
      
        String text = new String("John.Davidson/05051988/Belgrade Michael.Burton/01011969/Krakow Ivan.Perkinson/23051980/Moscow "
                + "Anna.Sims/08121997/Berlin Bonnie.Leeds/28022006/NoviSad Mickey.Mouse/13061917/Danzig Danny.Donalds/13062019/Minsk");
      
        String[] jedanRed = text.split(" ");
      
        for(int i = 0; i < jedanRed.length ; i++) {
          
            String[] jednaStavka = jedanRed[i].split("[./]"); 
          
            listaPersona.add( new Person(
                        jednaStavka[0],
                        jednaStavka[1],
                        LocalDate.parse(jednaStavka[2], ulazniFormatDatuma),
                        jednaStavka[3])
                    ); 
        }
      
        Person.stampajZaglavlje();     
        for(int k = 0; k < listaPersona.size() ; k++) {
            listaPersona.get(k).stampajRed();
            }
      
    }

}




Колико видим, ти у свом коду треба само да обришеш унутрашњу петљу (редове 20 и 27), затим да промениш промениш индексе у редовима 22, 23, 24, 25, и онда да убациш редове 28 и 29 у петљу. Ако желиш, постави свој код овде, па ћу да пробам.
 
Poslednja izmena:
stanje
Ova tema je zatvorena zbog neaktivnosti. Molim objavite novu temu i pridružite se diskusiji.

Top
  Blokirali ste reklame
Dragi prijatelju, nemojte da blokirate reklame - isključite Ad Blocker na Forumu, jer će tako mesto vaših susreta na Krstarici ostati besplatno za korišćenje.