2010-01-12 54 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);