Problem Komma in einem List eintrag

Steffen01

Mitglied
Hi,

haba folgendes Problem,

Ich habe eine

Liste <String> list = new ArrayList<String>()

Der übergebe ich einen neuen String eintrag, der ein Komma enhält.

Das Problem ist , wenn ich den Eintrag der Liste weiter gebe, das der Eintrag mit Hochkomma anfängt und endet.

Gibt es eine Möglichkeit das dies nicht passiert?
Also ein Ersatzzeichen das ein Komma repräsentiert und bei übergabe so interpretiert wird?


Denke im Voraus
 
Im Grunde verstehe ich das Problem nicht!

Was möchtest Du der Liste wie hinzufügen und was klappt nicht?
Am besten ein wenig Code dazu.
 
Code:
List<String> list= new ArrayList<String>();
String s = " der , die , das"

list.add(s);

//PDF mit Metadaten wird erstellt
//Übergabeparameter muss vom Typ List sein
metadaten.addKey(list);

Nun steht in den Methadaten nicht: der, die, das' sondern "der, die , das"

Kann man dies umgehen dass keine Hochkamma am Anfang und am Ende ausgegeben wird, ohne dass ich das Komma im String mit einem anderen Zeichen ersetzte.
 
Also Prinzipiell muss dir erstmal klar sein, das

Java:
"foo, bar, baz"

ein zusammenhängendes String literal ist. Java zerlegt Strings nicht automatisch an irgendwelchen Separationszeichen (was in vielen Faellen ja auch keinen Sinn machen wuerde). Also fügt Java das komplette String Literal zu der Liste hinzu.

Fuer die Aktion die du vorhast wird dir der java.util.StringTokenizer weiterhelfen.

Prinzipiell sollte das dann so funktionieren:

Java:
List<String> metadataList = new ArrayList<String>();
String commaSeparatedList = " der , die , das"

// Zerlege den String 'commaSeparatedList' an jedem Komma und gebe die Kommas nicht zurueck.
StringTokenizer tokenizer = new StringTokenizer(commaSeparatedList, ",", false);

// solange noch Eintraege in der kommaseparierten Liste stehen...
while(tokenizer.hasMoreTokens()) {
	// fuege diese zur Metadatenliste. Entferne vorher fuehrenden und anhaengenden Whitespace.
	metadataList.add(tokenizer.nextToken().trim());
}

//PDF mit Metadaten wird erstellt
//Übergabeparameter muss vom Typ List sein
metadaten.addKey(list);
 
Zuletzt bearbeitet:
Also fügt Java das komplette String Literal zu der Liste hinzu.

Es soll ja ein Eintrag in der Liste sein.
Jedoch werden die Anführungszeichen mit Ausgegeben, wenn ich den einen Eintrag auslese.

Es liegt wohl daran das die ArrayList Kommas als Seperatoren nimmt. Und zusätzlich den String in Anführungszeichen setzt.

Jedoch will ich das vermeiden. Gibt es also eine Möglichkeit das zu vermeiden?

String s= "foo, bar, baz"

Ausgabe des Eintrages s aus der ArrayList:
"foo, bar, baz"

statt: foo, bar, baz
 
Zuletzt bearbeitet:
Code:
List<String> list = new ArrayList<String>();
list.add("foo, bar, baz");
System.out.println(list.get(0));

ergibt:
 

Anhänge

  • Neues Bild.jpg
    Neues Bild.jpg
    45 KB · Aufrufe: 27
Zurück