Java—打印字母表

A到Z的ASCII码值是65到90

a到z的ASCII码值是97到122

Demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class AlphabetDemo {

public static void main(String[] args) {
/*char和int类型能够相互转换,相信大家都明白 */

//A到Z的ASCII码是65到90,a到z的ASCII码值是97到122
for (char c = 0; c < 128; c++) {
//java里包装类的一个静态方法,确定c是字母还是小写!!!)
if (Character.isLowerCase(c)) {
System.out.printf("value: %3d char: %c\n", (int)c, c);
//同上,判断c是大写
} else if (Character.isUpperCase(c)) {
System.out.printf("value: %3d char: %c\n", (int)c, c);
}
}
}

}

注:关于isLowerCaseisUpperCase在文末有进一步的说明。

扩展 ①

????题目:
Java—打印字母表

????参考代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.Scanner;

public class Alphabet {

public static void main(String[] args) {
Scanner input=new Scanner(System.in);
int n,level;
System.out.println("the value of n:");
n=input.nextInt();
level=(int)Math.ceil(26/n);//向上取整

System.out.println("======Upper========");
char CH=65;
for(int i=0;i<=level;i++) {
for(int j=0;j<n;j++) {
System.out.printf("%c ",CH);
++CH;
if(CH>=90)
break;
}
System.out.println();
}
System.out.println();
/* 另一个版本,这就看个人理解了!
System.out.println("======Upper========");
char CH=65;
for(int i=1;i<=26;i++) {
System.out.print(CH+" ");
CH++;
if(i%n==0) {
System.out.println();
}
}
System.out.println();
*/
System.out.println("======Lower========");
char ch=97;
for(int i=0;i<=level;i++) {
for(int j=0;j<n;j++) {
System.out.printf("%c ",ch);
++ch;
if(ch>=123)
break;
}
System.out.println();
}
System.out.println();
input.close();
}

}

注意:Math.ceil();//向上取整

参考:我的另一篇博客:Java—向下/上取整

????执行截图:

Java—打印字母表

扩展 ②

上面常规思考题中的第6题是自左往右从上往下的水平顺序输出大写堆和小写堆字母表。假如想要按照自上而下从左往右的垂直顺序输出大写堆,该如何实现程序?

即假如每列输出N=5个,则程序的输出情况如下:

= = = Upper = = =

A F K P U Z

B G L Q V

C H M R W

D I N S X

E J O T Y

试用一重循环编写程序,指定一个整型数N(1<=N<=26),按示例规格输出列优先排序的大写字母表。

????代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.Scanner;

public class Aphabet {

public static void main(String[] args) {
System.out.println("======Upper========");
Scanner input = new Scanner(System.in);
int n,level;
System.out.println("the value of n:");
n = input.nextInt();
level = (int)Math.ceil(26/n);//向上取整
int j = 0;
char ch = 65;
p(1, n, ch);
}
public static void p(int x,int n,char ch) {
if(x > n)
return;
for(int i = x;i <= 26;i += n){
ch = (char)(i + 64);
System.out.print(ch + " ");
}
System.out.println();
++x;
p(x, n, ch);
}
}

下午做了半个多小时都没做出来,晚上玩了会游戏突然想到用递归,下午怎么就没想到呢?然后游戏就挂机被举报了,但一气呵成搞定了这题。说明思想不够灵活hhh

????截图:

Java—打印字母表

补充:Java Character 类

isLowerCase() 方法

????作用:用于判断指定字符是否为小写字母。

????语法

1
boolean isLowerCase(char ch)

????参数

  • ch – 要测试的字符。

????返回值

如果字符为小写,则返回 true;否则返回 false。

????实例

1
2
3
4
5
6
7
public class Test {

public static void main(String args[]) {
System.out.println( Character.isLowerCase('a'));
System.out.println( Character.isLowerCase('A'));
}
}

????以上程序执行结果为:

1
2
true
false

isUpperCase() 方法

????作用:用于判断指定字符是否为大写字母。

????语法

1
boolean isUpperCase(char ch)

????参数

  • ch – 要测试的字符。

????返回值

如果字符为大写,则返回 true;否则返回 false。

????实例

1
2
3
4
5
6
7
public class Test {

public static void main(String args[]) {
System.out.println( Character.isUpperCase('b'));
System.out.println( Character.isUpperCase('B'));
}
}

????以上程序执行结果为:

1
2
false
true