Java黑皮书课后题第6章:6.12(显示字符)使用下面的方法头,编写一个打印字符的方法。编写一个测试程序、打印从‘1‘到‘Z‘的字符,每行打印10个,字符之间使用一个空格字符隔开
6.12(顯示字符)使用下面的方法頭,編寫一個打印字符的方法。編寫一個測試程序、打印從'1'到'Z'的字符,每行打印10個,字符之間使用一個空格字符隔開
- 題目
- 題目描述
- 破題
- 補充:從生成隨機字符窺探ASCII碼的計算
- 代碼
- 運行示例
題目
題目描述
6.12(顯示字符)使用下面的方法頭,編寫一個打印字符的方法:
public static void printChars(char ch1, char ch2, int numberPerLine)
該方法打印ch1到ch2之間的字符,每行按指定個數打印
編寫一個測試程序、打印從’1’到’Z’的字符,每行打印10個,字符之間使用一個空格字符隔開
破題
由題意知:主方法只需要將ch1、ch2和numberPerLine三個參數傳入printChars()方法即可
同時printChars()方法沒有返回值
所以主方法只需要調用printChars()方法即可
所有功能由printChars()方法完成
補充:從生成隨機字符窺探ASCII碼的計算
①每個字符都有唯一Unicode,在16進制0000~FFFF之間,所以最大65535:
(int) (Math.random() * (65535 + 1))
②隨機小寫字母,因為a是(int)‘a’,所以(int)'a’到(int)‘z’:
(int) ((int) * a + Math.random() * ((int)‘z’-(int)‘a’+1))
簡化(為隨機的小寫字母):
(char)(‘a’ + Math.random() * (‘z’-‘a’+1))
③總結:從上面可以看出來,如果已知’A’想得到’b’,可以:
(char) (‘A’ + 33)得到
代碼
public class Test6_12 {public static void main(String[] args) {printChars('1', 'Z', 10);}// 定義printChars()方法public static void printChars(char ch1, char ch2, int numberPerLine){int count = 0; // 計數變量for (int i = 0; i + ch1 <= ch2; i++){System.out.print((char) (i+ch1) + " ");count++;if (count % numberPerLine == 0)System.out.println();}} }運行示例
1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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黑皮书课后题第6章:6.12(显示字符)使用下面的方法头,编写一个打印字符的方法。编写一个测试程序、打印从‘1‘到‘Z‘的字符,每行打印10个,字符之间使用一个空格字符隔开的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第6章:6.11(金
- 下一篇: Java黑皮书课后题第6章:*6.14(