2010-01-12 55 views
36

java中的「自動增量」字母表 - 這可能嗎?從A到Z沒有第三方圖書館?Java中的「自動增量」字母表?

+1

你能澄清問題請。你有什麼,你想做什麼? – 2010-01-12 07:00:25

+0

我只是在尋找一些東西來填補我的陣列:) – Dacto 2010-01-12 07:05:21

回答

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哈哈我從來沒有想過這個,我其實覺得有一個神奇的功能,它做了哈哈。這是更好的imo tho。 – Dacto 2010-01-12 07:01:08

+1

很高興b的幫助......歡呼聲! – Richie 2010-01-12 08:33:09

+0

你是aweSome男人! – 2014-06-04 08:52:23

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 2010-01-12 06:57:04

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

請注意,這隻會做大寫。如果你想要小寫字母,你需要兩個循環,或者你可以在每次迭代中做兩個步驟,每次添加'A'和'a'之間的距離。 – captncraig 2010-01-12 06:57:14

+0

我不認爲這是可能的:)謝謝 – Dacto 2010-01-12 07:02:33

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

輸出:B C d E F G H I J K L M N 2 O P Qř式T U V W X Y

2

強制性的Java 8溶液:

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