# String mit For Each durchlaufen



## miketech (15. Aug 2005)

Hi zusammen,

mich würde folgendes interessieren:

Ich habe einen String "line" und möchte nun nacheinander jedes Zeichen davon ausgeben, bzw. den ASCII Code jedes Zeichens.

Das ganze möchte ich aber in einer for each Schleife machen. Geht das?

Also sowas in der Art:


```
foreach (Zeichen in line) {
  System.out.println((int)Zeichen);
}
```

Oder sowas. Möchte doch gerne die neuen Java 5 Features nutzen 

Gruß

Mike


----------



## bygones (15. Aug 2005)

einfach so mit Strings geht das nicht... kannst ihn aber in ein char[] umwandeln und dann das array durchlaufen...


----------



## messi (15. Aug 2005)

miketech hat gesagt.:
			
		

> (...) Möchte doch gerne die neuen Java 5 Features nutzen


Eeeek! ... so ein Satz gehört zu den Begründungen, weshalb man in Java (noch) keine Operatoren überladen kann.

Naja, die for-each-Schleife ist nur syntaktischer Zucker und arbeitet rein mit Objekten (Ausnahme: Arrays). Deshalb müsste deine Schleife java.lang.Character benutzen, was eine wahnsinnige Verschwendung wäre. Aber wenn du so geil auf Java-5-Features bist, dann schreibe doch einen Wrapper, der Interable<Character> implementiert.


----------



## chilli (15. Aug 2005)

Wie deathbyaclown schon schrieb geht das nur mit Arrays/Collection
 (btw. deathbyaclown scharfes pic  )

char[] c={'a','b','a','c'};        
for (char s: c) 
  System.out.println(s+"="+(int)s);//Ausgabe des dezimalen ASCII Wert


----------



## Beni (15. Aug 2005)

Zusammengefasst   


```
public static void main( String[] args ) {
        String temp = "1234";

        // wenig Code, aber viel Ressourcen verschwendet
        for( char c : temp.toCharArray() )
            System.out.println( c );
        

        // viel Code, aber ziemlich schnell
        for( int i = 0, n = temp.length(); i<n; i++ )
            System.out.println( temp.charAt( i ) );
    }
```


----------

