Avatar billede dennish Nybegynder
17. juli 2007 - 23:38 Der er 7 kommentarer og
2 løsninger

konvertere fra LinkedList til Streng

Hej jeg har følgende kodeudsnit 

String result = "";

for (int j = 0; j < index.length; j++) {
linked.addLast(nextLine[index[j]]);
result = linked.toString();
}
System.out.println(result); giver f.eks. følgende udskrift/string
[Allan Hansen, 10211]
hvilke ikke er et problem. Her kan jeg så bruge f.eks split til at få fat i nummer 2 element
MEN hvis Mit navn f.eks indeholder et komma, såsom Allan J, Hansen
vil jeg ikke kunne lave en split på element nummer.
Så mit spørgsmål er følgende:

Kan det virkelig passe at

a) når man tilføjer et element til en linked List adskilles elementerne med ,. Kan jeg ikke undgå dette så min Streng (konverteret fra den linkedListe) kommer til at se såleds ud:
(adskilt af mellemrum )
Allan Hansen 10211

b) Kan jeg ikke også undgå [] i enden af den konverterede streng ?

Ved godt jeg skal lave/have fat i en anden form for toString(), men kan ikke lige se hvordan
Avatar billede kalp Novice
17. juli 2007 - 23:43 #1
ved ikke hvad nextLine gør, men det ligner du prøver på følgende

for (int j = 0; j < index.length; j++) {
linked.addLast(nextLine[index[j]]);
result += nextLine[index[j]]
}

men ellers skal du slet ikke kalde tostring på hele din linked list.. men istedet loope den igennem og hive hver enkelt værdi ud.
Avatar billede mikkelbm Nybegynder
17. juli 2007 - 23:43 #2
Det er fordi det er toString-metoden du har fat i.

Jeg tror du tænker den lidt forkert. En linkedlist eller List i almindelighed er ikke bygget til at holde på sammensatte objekter som du vil der.

Derfor:

Lav en ny klasse:

public class Person
{
  public String firstname;
  public String lastname;
  public String address;

  public Person (String firstname.....)
  {
      this.firstname = firstname;
      ...
  }
}

Vil du lave det pænt, laver du get/set metoder.

Herefter opretter du de objekter du nu vil have:

Person person1 = new Person("Allan", "Hansen", "10211");
...

linked.add (person1);
linked.add (person2);
etc...

Herefter har du en liste med person-objekter.
Avatar billede dennish Nybegynder
17. juli 2007 - 23:44 #3
ups kom lige i tanke om at adskilles med mellemrum nok ikke er en godt ide, idet navne også kan have mellemrum. Så måske ville det være en bedre idet at adkillem med et specialtegn maN nærmest ved der ikke forekommer i en sætning.
F.eks adskille med #;#
Allan Hansen #;# 10211
Avatar billede dennish Nybegynder
17. juli 2007 - 23:48 #4
mikkelbm>>
Ok det jeg egentlig skal bruge er en Datatype hvor jeg kan tilføje til enden af.
Jeg har et loop indeholdende en masse data. For hver dataelement i loopet skal jeg tilføjet element til en datatype.

F.eks:
100    "Abdulkarim Kami Barjas"    "2"  = 3 elementer
Disse skal så tilføjet til en datatype (efterfølgende af hinnanden) og så konverteres til en string
Ved godt jeg kan bruger en ArrayList men igen når jeg koverterer den til en Streng
får jeg igen [element1 , element2 ... elementn]
Avatar billede kalp Novice
17. juli 2007 - 23:54 #5
som jeg skrev skal du ikke kalde tostring direkte på en collection.

Du skal loope den igennem og kalde tostring på hver enkelt element og tilføje det til din en string.
Avatar billede kalp Novice
17. juli 2007 - 23:56 #6
Nu har jeg ikke kigget på Java i lang tid så syntax er muligvis ikke 100% i orden.. du burde dog forstår ideen:)

String allElements = "";
for(Object element : linked)
{
  allElements += element.ToString();
}

og så kan du evt. lave komme efter hvert element.. eller hvad du vil

allElements += element.ToString() + ",";
Avatar billede dennish Nybegynder
18. juli 2007 - 00:52 #7
tusinde tak begge to. Jeg kom faktisk frem til at jeg kunne undvære en datatype og så bare direkte opbygge min streng. Hmm er vist en smule for træt nu til at kode :-)

for (int j = 0; j < index.length; j++) {
result+=nextLine[index[j]]+" #;# ";
}
smider i ikke et svar
Avatar billede kalp Novice
18. juli 2007 - 00:59 #8
præcis sådan der;)
Avatar billede mikkelbm Nybegynder
18. juli 2007 - 07:50 #9
Hvis vi tænker lidt objektorienteret, så vil den pæneste løsning stadig være en ny datatype :)
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