2013-06-23, 16:23
  #1
Medlem
Jag har ett litet problem, som r krngligt fr en nybrjare som mig

Iallfall jag har en textfil med massa uppgifter om olika personer i formatet:

Frnamn Efternamn
YYMMDDNNNN
Adressrad

Jag skulle vilja omvandla de till detta format istllet:

Efternamn, frnamn
Adressrad

Jag har lite problem med hur jag skall dela strngarna i textfilen korrekt eftersom det bde r mellanslag och nyrad med i textfilen.


Den jag hade tnkt mig var att jag skapar en klass Person och lgger in alla dessa person objekt i en arraylist, som koden nedan visar:

klass person: http://pastebin.com/VJBdFhKW
main metod klass: http://pastebin.com/bNT294yW

Och utifrn detta kunde jag byta formatet i en toString() metod i Person klassen senare mjlitgvis. Samt skriva ut alla person-objekt i en ny textfil.


Men just nu har jag som sagt problem med uppdelningen av strngarna... ngon som kan frklara och tipsa om hur jag skall g tillvga?


Mvh
Citera
2013-06-23, 18:00
  #2
Medlem
Antts avatar
Det r allts problem med lsning frn filen, och inte skrivning till en ny. Am I right?
Kod:
String line = input.nextLine();
Hr lser du in en rad till strngen line. Nr du sedan frsker hitta radbrytningar, dvs split("\n"), s lr du inte hitta ngra eftersom att du bara har en rad.

Om du istllet skulle lsa in namn, personnr och address som separata rader, dvs:

Kod:
while(input.hasNextLine()) {
     String[] namn = input.nextLine().split(" ");
     String personnr = input.nextLine();    //Anvnds inte? Men mste skippa raden p ngot stt.
     String address = input.nextLine();

     String frnamn = namn[0];
     String efternamn = namn[1];

     persons.add(new Person(frnamn, efternamn, address));
}

Det hr fungerar frsts bara om textfilen r formaterad som du skrev:
Kod:
Frnamn Efternamn
XXXXXXXXXX
Address
Frnamn Efternamn
XXXXXXXXXX
Address
Frnamn Efternamn
XXXXXXXXXX
Address

edit:
Din toString skulle sedan kunna se ut ngot som:

Kod:
@Override
public String toString() {
     return firstname + ", " + lastname + "\n" + address;
}
__________________
Senast redigerad av Antt 2013-06-23 kl. 18:06.
Citera
2013-06-23, 19:52
  #3
Medlem
Citat:
Ursprungligen postat av Antt
Det r allts problem med lsning frn filen, och inte skrivning till en ny. Am I right?
Kod:
String line = input.nextLine();
Hr lser du in en rad till strngen line. Nr du sedan frsker hitta radbrytningar, dvs split("\n"), s lr du inte hitta ngra eftersom att du bara har en rad.

Om du istllet skulle lsa in namn, personnr och address som separata rader, dvs:

Kod:
while(input.hasNextLine()) {
     String[] namn = input.nextLine().split(" ");
     String personnr = input.nextLine();    //Anvnds inte? Men mste skippa raden p ngot stt.
     String address = input.nextLine();

     String frnamn = namn[0];
     String efternamn = namn[1];

     persons.add(new Person(frnamn, efternamn, address));
}

Det hr fungerar frsts bara om textfilen r formaterad som du skrev:
Kod:
Frnamn Efternamn
XXXXXXXXXX
Address
Frnamn Efternamn
XXXXXXXXXX
Address
Frnamn Efternamn
XXXXXXXXXX
Address

edit:
Din toString skulle sedan kunna se ut ngot som:

Kod:
@Override
public String toString() {
     return firstname + ", " + lastname + "\n" + address;
}


Tusen tack fr hjlpen, nu fungerar allt som det skall
Jag har suttit med uppgiften sen kl 10 p morgonen
Gjorde allt mer komplicerat n det var....
Sen frstod jag inte riktigt som du nmnde att input.nextLine();
Lser raden tills den nr ett '\n' tecken eller radbrytning.

Tack fr hjlpen nnu en gng och en bra vlformulerad frklaring.

Glad midsommar!
Citera
2013-06-23, 19:59
  #4
Medlem
En frga till frresten...

Hur gr jag om jag vill identifiera knet p personen?

tex

Efternamn, Frnamn [M]
Adressrad

Fr en man och

Efternamn, Frnamn [F]
Adressrad

fr en kvinna....
Citera
2013-06-26, 09:40
  #5
Medlem
Du kan ju brja med att lgga till en ny variabel, lder, i din Person-klass.
Citera
2013-06-26, 16:37
  #6
Medlem
ToiletRelicTrees avatar
Citat:
Ursprungligen postat av ElegantTD
En frga till frresten...

Hur gr jag om jag vill identifiera knet p personen?

tex

Efternamn, Frnamn [M]
Adressrad

Fr en man och

Efternamn, Frnamn [F]
Adressrad

fr en kvinna....

Du har ju deras personnummer, det r ju bara kolla utifrn det huruvida det r en man eller kvinna.

Citat:
Ursprungligen postat av poussard
Du kan ju brja med att lgga till en ny variabel, lder, i din Person-klass.
Vad har lder med deras kn att gra?
Citera
2013-06-26, 17:55
  #7
Medlem
dethalvabarnets avatar
Citat:
Ursprungligen postat av ToiletRelicTree
Du har ju deras personnummer, det r ju bara kolla utifrn det huruvida det r en man eller kvinna?

De som har bytt kn d? ndras deras personnummer? o.O
Citera
2013-06-26, 22:02
  #8
Medlem
Citat:
Ursprungligen postat av ToiletRelicTree
Vad har lder med deras kn att gra?

Oj, tnkte p flera saker samtidigt. Menade naturligtvis en variabel kn.

Citat:
Ursprungligen postat av dethalvabarnet
De som har bytt kn d? ndras deras personnummer? o.O

Ja, de fr ett nytt personnummer.
Citera
2013-06-27, 16:36
  #9
Medlem
Thanks guys!
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in