2010-01-12 7 views
36

"Auto Inkrement" Alphabet in Java - ist das möglich? Von A bis Z ohne eine 3rd-Party-Bibliothek?"Auto inkrement" Alphabet in Java?

+1

können Sie die Frage klären, bitte. Was hast du schon und was willst du machen? –

+0

Ich war nur auf der Suche nach etwas, um mein Array zu füllen :) – Dacto

Antwort

89

Ja, Sie können es tun, wie folgt:

for (char alphabet = 'A'; alphabet <= 'Z'; alphabet++) { 
    System.out.println(alphabet); 
} 

Es ist auch möglich, mit Schublade gesteckt:

for (int i = 65; i <= 90; i++) { 
    System.out.println((char)i); 
} 
+4

omg haha ​​ich habe nie darüber nachgedacht, ich dachte eigentlich, dass es eine magische Funktion gab, die es lol gemacht hat. Das ist viel besser imo tho. – Dacto

+1

froh zu b Hilfe ... Prost !! – Richie

+0

Sie sind ehrfürchtig! –

18

Ja, wie folgt aus:

for (int i = 0; i < 26; i++) 
{ 
    char upper = (char) ('A' + i); 
    char lower = (char) ('a' + i); 
    ... 
} 
2
for (char c = 'a'; c <= 'z'; c++) 
    //whatever 
+0

Das OP will Großbuchstaben. – Asaph

9
for (char c = 'A'; c <= 'Z'; c++) { 
    ... 
} 
+0

Beachten Sie, dass dies nur in Großbuchstaben erfolgt. Wenn Sie auch Kleinbuchstaben verwenden möchten, benötigen Sie zwei Schleifen, oder Sie können in jeder Iteration zwei Schritte ausführen und den Abstand zwischen 'A' und 'a' bis c jedesmal addieren. – captncraig

+0

Ich dachte nicht, dass das möglich war :) danke – Dacto

5

Sie suchen etwas wie folgt aus:

for(int i = 'a'; i < 'z'; i++) 
     System.out.println((char)i);//cast int to char 
0
for(char alphabet = 'a'; alphabet <= 'z';alphabet++){ 
    System.out.println(alphabet); 
    } 

verwenden für Klein Alphabet

0

hier ein Stück Code ist zu sehen, was wirklich los ist (oder zumindest der Ausdruck: P):

for(int i = 0; i < 26; i++) 
{ 
    System.out.println((char)('A' + i) + ":" + ('A' + i) + " : " + (char)('a' + i) + ":" + ('z' + i)); 
} 
2

Dies ist meine Lösungen, nur ein wenig komplizierter als andere Beispiele oben, aber verlängerbaren für andere Iterationen (verwendet Muster Iterator):

class Alphabet implements Iterable<String>{ 

    private char start; 
    private char end; 

    public Alphabet(char start, char end) { 
     this.start=start; 
     this.end=end; 
    } 

    @Override 
    public Iterator<String> iterator() { 
     return new AlphabetIterator(start, end); 
    } 

    class AlphabetIterator implements Iterator<String>{ 

     private String current; 
     private String end; 

     private AlphabetIterator(char start, char end) { 
      this.current=String.valueOf(--start); 
      this.end=String.valueOf(end); 
     } 

     @Override 
     public boolean hasNext() { 
      return (current.charAt(0) < end.charAt(0)); 
     } 

     @Override 
     public String next() { 
      char nextChar = current.charAt(0); 
      return this.current=String.valueOf(++nextChar); 
     } 
    } 

    public static void main (String[] arg){ 

     for (String str:new Alphabet('B', 'Y')){ 
      System.out.print(str+" "); 
     } 
    } 
} 

Ausgang: B C D E F G H I J K L M N O P Q R S T U V W X Y

2

Mandatory Java 8 Lösung:

IntStream.rangeClosed('A', 'Z') 
     .mapToObj(c -> "" + (char) c) 
     .forEach(System.out::println);