2010-01-12 5 views
36

Алфавит «Auto increment» в java - это возможно? От А до Я без сторонней библиотеки?Алфавит "Auto increment" в java?

+1

Вы можете прояснить вопрос пожалуйста. Что у вас уже есть и что вы хотите сделать? –

+0

Я просто искал что-то, чтобы заполнить мой массив :) – Dacto

ответ

89

Да, вы можете сделать это следующим образом:

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

Также можно с типажей:

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

omg haha ​​Я даже не думал об этом, я на самом деле думал, что есть волшебная функция, которая сделала это LOL. это намного лучше imo tho. – Dacto

+1

рад помочь ... привет! – Richie

+0

вы aweSome человек! –

18

Да, как это:

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

OP хочет заглавные буквы. – Asaph

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

Обратите внимание, что это будет только верхний регистр. Если вам нужен и нижний регистр, вам нужны две петли, или вы можете сделать два шага на каждой итерации и добавить расстояние между «A» и «a» до c каждый раз. – captncraig

+0

Я не думал, что это было возможно :) спасибо – Dacto

5

вы ищете что-то вроде этого:

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); 
    } 

Используйте это для строчных алфавитов

0

Вот кусок кода, чтобы увидеть, что действительно происходит (или, по крайней мере, распечатывают: P):

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

Это мои решения, только немного более сложным, чем в других примерах выше, но расширяемый для других итераций (используется шаблон итератора):

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+" "); 
     } 
    } 
} 

Выход: В С D Е Ж З И Й К Л М Н О П Р С Т У Ш Ц

2

Обязательный решение Java-8:

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