代码之家  ›  专栏  ›  技术社区  ›  Dacto

Java中的“自动增量”字母表?

  •  40
  • Dacto  · 技术社区  · 15 年前

    Java中的“自动增量”字母表,这是可能的吗?从A到Z没有第三方库?

    10 回复  |  直到 6 年前
        1
  •  105
  •   Sneh Pandya    7 年前

    是的,您可以这样做:

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

    也可以采用打字:

    for (int i = 65; i <= 90; i++) {
        System.out.println((char)i);
    }
    
        2
  •  18
  •   Community CDub    13 年前

    是的,像这样:

    for (int i = 0; i < 26; i++)
    {
        char upper = (char) ('A' + i);
        char lower = (char) ('a' + i);
        ...
    }
    
        3
  •  9
  •   Laurence Gonsalves    15 年前
    for (char c = 'A'; c <= 'Z'; c++) {
      ...
    }
    
        4
  •  5
  •   Peter Mortensen icecrime    6 年前

    你在找这样的东西:

        for( int i = 'a'; i < 'z'; i++ )
            System.out.println((char)i); // Cast int to char
    
        5
  •  4
  •   Lukas Eder    9 年前

    强制Java 8解决方案:

    IntStream.rangeClosed('A', 'Z')
             .mapToObj(c -> "" + (char) c)
             .forEach(System.out::println);
    
        6
  •  2
  •   sdornan    15 年前
    for (char c = 'a'; c <= 'z'; c++)
      //whatever
    
        7
  •  2
  •   Massimiliano Giunchi    10 年前

    这是我的解决方案,比上面的其他示例稍微复杂一点,但可以扩展到其他迭代(使用模式迭代器):

    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 o p q r s t u v w x y

        8
  •  0
  •   EngineerCoding    11 年前

    下面是一段代码,看看到底发生了什么(或者至少打印出来:p):

    for(int i = 0; i < 26; i++)
    {
        System.out.println((char)('A' + i) + ":" + ('A' + i) + " : " + (char)('a' + i) + ":" + ('z' + i));
    }
    
        9
  •  0
  •   Peter Mortensen icecrime    6 年前
    for (char alphabet = 'a'; alphabet <= 'z'; alphabet++) {
        System.out.println(alphabet);
    }
    

    用这个来表示小写字母。

        10
  •  0
  •   Peter Mortensen icecrime    6 年前

    这是没有第三方库的代码,

    public class JavaPrintAlphabet
    {
       public static void main(String[] args)
       {
          System.out.println("Printing the alphabets from A to Z : ");
          char alpha;
    
          for(alpha = 'A'; alpha <= 'Z'; alpha++)
          {
             System.out.println(alpha);
          }
       }
    }
    

    产量

    Printing the alphabets from A to Z : A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    

    有关Java程序打印字母表的更多内容,请参阅 this resource .