# String splitten aber nicht alles speichern.Danach in HashSet/Map schreiben.



## Philipp1904 (9. Okt 2011)

Hallo Leute ,

ich habe eine Aufgabe bekommen in der ich mithilfe von Collections etwas sortieren soll und nur Unikate speichern soll.

So nun zu dem Teil den ich nicht verstehe.

Es steht in einer Datei (firewall.txt):

Quelladresse|Zieladresse|Port(diese Zeile steht nicht in der Txt sondern dient nur zur besseren lesbarkeit.)
134.60.67.66 134.60.66.6:33
134.60.67.31 134.60.66.6:80
134.60.67.31 134.60.66.6:80
134.60.67.31 134.60.66.1:23

davon soll ich NUR! die IP in einem Hashset speichern und den Port wegfallen lassen.Ich habe aber echt keine Idee wie ich mithilfe von Split nur die IP speichere und den Port wegfallen lasse.

Danach soll ich alles nurnoch in dieser Form :

134.60.66.1
    134.60.67.31
134.60.66.6
    134.60.67.31
    134.60.67.66

in eine Txt schreiben.

ich habe es probiert mit :

```
String x[]=csv.split(":??");
```
stimmt aber sicherlich nicht.

Ich freue mich über jede Hilfe , bin hier schon am verzweifeln!


Grüße.


----------



## eRaaaa (9. Okt 2011)

Was ist jetzt bei dir im Beispiel 
	
	
	
	





```
csv
```
 ? Eine Zeile oder wie, also im Beispiel
z.B.
"134.60.67.66 134.60.66.6:33" ?

```
String[] split = "134.60.67.66 134.60.66.6:33".split("[ :]");
		System.out.println(Arrays.toString(split));
```

-> [134.60.67.66, 134.60.66.6, 33] , d.h. du hast im Array an [0] = die erste IP, in [1] = die zweite und in [2] = den Port.


----------



## Philipp1904 (9. Okt 2011)

Ja genau , ich bekomme EINE Zeile übergeben in der z.b. 134.60.67.66 134.60.66.6:33 steht.

Nun muss ich irgendwie den Port abschneiden.
Und das ganze Ergebnis in eine HashSet schreiben.


----------



## eRaaaa (9. Okt 2011)

Ja, siehe meine obige Antwort 
Was ist jetzt genau das Problem? Nimm halt IP 1 und 2 und adde die demHashset, den Port (Array[2]) brauchst du ja nicht weiter beachten!


----------



## Philipp1904 (9. Okt 2011)

Aja , du hast recht !

Danke für die Hilfe.Nun ist die Frage ob :


```
Collection<String> test = new HashSet<String>();
```

das dafür richtig vorhergesehene HashSet ist....


----------



## timbeau (10. Okt 2011)

HashSet beinhaltet halt jede IP nur einmal. Wenn das ok für dich ist, warum nicht?!

Ansonsten nimm eine Liste und adde die einzelnen IPs


----------



## eRaaaa (10. Okt 2011)

Scheint den Anforderungen zu entsprechen. Wenn aber eh sortiert werdne soll(so verstehe ich den erstnen Post) wäre evtl. auch ein TreeSet denkbar


----------

