# For-Schleife mit String



## selim (18. Jan 2012)

Hallo zusammen,

ich habe ein kleines problem, komme nicht weiter stehe auf dem schlauch (bei der 1 for-schleife.)


```
for (String x = host; x < hostxy;){
for (int i = 0; i < 65536; i++) {
```

wie kann ich zum beispiel einen IP-Range durch die for-schleife jagen?

Für einen tip wäre ich dankbar.


----------



## HimBromBeere (18. Jan 2012)

in einer for-Schleife kannst du nur "zählbare" Datentypen verwenden... woher soll denn der Compiler wissen, wie String++ gerechnet werden soll...

Um deine IP-Range zu schreiben? Warum verwandelst du deine Adresse nicht einfach in eine einzige hex-Zahl und iterierst über die?


----------



## VfL_Freak (18. Jan 2012)

Moin,



selim hat gesagt.:


> ```
> for (String x = host; x < hostxy;){
> ```


Was soll das denn sein ?
Was ist _host_, was _hostxy_ ?
Falls es es Strings sind, dann könntest Du sie mit mit "*.equals*" vergleichen ....
Und als FOR-Schleife ist das so schlichtweg Unsinn - schau doch mal in ein Grundlagen-Buch !



selim hat gesagt.:


> wie kann ich zum beispiel einen IP-Range durch die for-schleife jagen?


was ist denn an der zweiten FOR-Schleife so schlecht ?

Gruß
Klaus


----------



## Schandro (18. Jan 2012)

Wenn du über mehrere Domains iterieren willst kannst du es bspw. so machen:

```
String[] hosts = {'google.com', 'facebook.com', 'amazon.de'};
for(String host : hosts){
   System.out.println(host);
}
```


----------



## hdi (18. Jan 2012)

> in einer for-Schleife kannst du nur "zählbare" Datentypen verwenden... woher soll denn der Compiler wissen, wie String++ gerechnet werden soll...


Du hast schon Recht, dass in for-Schleifen eigentlich immer ein loop-count hochgezählt wird. Wenn das nicht so wäre, dann würde man gleich eine while-Schleife nehmen. Aber das ist lediglich so gängig - eine for-Schleife muss syntaktisch nichts mit "zählen" zu tun haben. Bsp:


```
for(; getSomeRandomBoolean(); System.out.println("Random boolean was true"));
```

Kompiliert und läuft einwandfrei. Ist natürlich Quatsch sowas zu schreiben - ich will dich auch nur darauf hinweisen dass eine for-Schleife aus Compiler-Sicht erstmal nix mit Zahlen, oder gar dem Zählen, zu tun hat. Es gibt durchaus ein paar Fälle, in denen eine for-Schleife nicht dem typischen i = 0; i<x; i++ Muster folgt.


----------



## selim (18. Jan 2012)

Hallo die zweite For-Schleife macht keine Probleme.

Ich will nur einen Range abfragen d.H. 192.0.0.1 between 192.0.0.254

Werde es irgenwie anders lösen eventuell über eine Batchdatei.

Danke!!!!! für die schnellen antworten.


----------



## Gast2 (18. Jan 2012)

```
for (int i = 1; i <= 254; i++) {
  syso("192.0.0." + i);
}
```
Sowas ???:L


----------



## selim (18. Jan 2012)

Jap,

ich hätte meine schleife in der Batch gemacht aber so ist es auf jeden fall bester. :applaus:


----------

