17. april 2007 - 18:12
Der er
4 kommentarer og
1 løsning
String , split
Hej jeg har følgende Streng jeg gerne vil lave split på.
String a ="20111,20123,Edith,Hansen,Rasmussen,2,D,Danmark,8,Butinnavn,østerbre,A,F,892,Vareafd.,CM + planogram,REK,Lagerassistent";
Jeg vil gerne lave a.split på strengen
a)
String[] split = new String[0];
split = a.split(",");
Prøvede første med komma, men det dur ikke idet posten Butinnavn,østerbre(som er sammensat) indeholder et komma
Har prøvet med mellemrum
b)
String[] split = new String[0];
split = a.split(" ");
Prøvede så med mellemrum med det dur heller ikke idet posten CM + planogram indehodler mellemrum
Jeg har søgt på nettet men kan umiddelbar ikke finde en løsning på mit problem er der nogen der kan hjælpe ?
17. april 2007 - 18:15
#1
Er det dig selv der genererer den string? Hvis ja, så brug eventuelt ; til at splitte på.
Hvis nej, så bliver det svært, medmindre at strengen ALTID ser sådan der ud. For hvis den gør det, ved du jo også hvilke indexes i arrayet de forskellige værdier ligger i.
17. april 2007 - 18:27
#2
mikkelbm>> Nej jeg generer ikke selv strengen. Den kommer fra en kommasepereret fil fra et databaseudtræk. Jeg bruger CSVReader (opencvs jar fil)til at læse en linie ad gange fra filen. Kan dog godt via CSVReader hente enkelte positioner ud fra min kommasepereret fil
Det ser sådan her ud
Stack allUsers = new Stack();
String[] nextLine;
while ((nextLine = csvReader.readNext()) != null) {
allUsers.add(nextLine[0]+";"+nextLine[1]+";"+nextLine[2]+";"+nextLine[3]+";"+nextLine[4]+";"+nextLine[5] +";"+nextLine[6]+";"+nextLine[7]+";"+nextLine[8]+";"+nextLine[9]+";"+nextLine[10]+";"+nextLine[11]+";"+nextLine[12]
+";"+nextLine[13]+";"+nextLine[14]);
}
Har nu på stakken en lang streng adskilt af ;, hvilke jo sådan set virker.
Jeg Itererer senere hen over stakken og det er her jeg så gerne vil bruge split til at udtage de enkelte postioner
Har tænkt selv tænkt at bruge ; til at splitte med.
Men hvis nu jeg f.eks. får et butiknavn= Butiknavn;Lisesbutik, får jeg et
problem. Jeg kunne selvfølgelig bruger noget fuldstændig foo bar såsom
@;@@@ og håber på at der ikke der nogen der skrive @;@@ i databasen
17. april 2007 - 22:04
#3
Jeg har ikke umiddelbart et løsningsforslag, for jeg kan ikke gennemskue hvad du har adgang til at ændre i og hvad du ikke har adgang til...