web-dev-qa-db-ja.com

Javaの「自動インクリメント」アルファベット?

Java-これは可能ですか?サードパーティのライブラリなしでAからZまでですか?

41
Dacto

はい、次のようにできます:

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

型キャストでも可能です:

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

はい、このように:

for (int i = 0; i < 26; i++)
{
    char upper = (char) ('A' + i);
    char lower = (char) ('a' + i);
    ...
}
18
Taylor Leese
for (char c = 'A'; c <= 'Z'; c++) {
  ...
}
9

次のようなものを探しています:

    for( int i = 'a'; i < 'z'; i++ )
        System.out.println((char)i); // Cast int to char
5
Michel Gokan

必須Java 8ソリューション:

IntStream.rangeClosed('A', 'Z')
         .mapToObj(c -> "" + (char) c)
         .forEach(System.out::println);
4
Lukas Eder
for (char c = 'a'; c <= 'z'; c++)
  //whatever
2
sdornan

これは私のソリューションであり、上記の他の例よりも少し複雑ですが、他の反復(パターン反復子を使用)に対して拡張可能です:

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

サードパーティライブラリなしのコードを次に示します。

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 を参照してください。

0
Shiva

実際に何が起こっているのかを確認するためのコードを以下に示します(または少なくとも印刷:P)。

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

これを小文字のアルファベットに使用します。

0
raja