網頁

2013年9月9日 星期一

Ex1_2請試著撰寫由鍵盤輸一個英文字母,計算他在26個字母裡的順序

請試著撰寫由鍵盤輸一個英文字母,計算他在26個字母裡的順序,假設輸入的是大寫的B則螢幕輸出是第2個英文字母,則輸入小寫的b則螢幕輸出是第2個英文字母。

在Unicode字符列表中大寫的A是從65開始到Z是90,小寫的a是從97開始到z是122,Unicode字符列表可以從這裡查詢

在這裡可以會使用到正則表示式(Regular expression)和條件判斷式。


輸入正確,執行後:

輸入不正確,執行後:



範例程式
  • Ch1_10.java
package chape;

import java.io.*;

public class Ch1_10 {
    public static void main(String[] args) throws IOException {
        System.out.print("請輸入一個英文字母,不論大小寫");
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String input = bf.readLine();
        if (input.matches("[a-zA-Z]")) { // 判斷輸入的是不是字母,是就執行
            char word = input.charAt(0); // 取得輸入字串轉換成字元
            int number = word; // 將取得的字元轉換成Unicode碼
            int newnumber = 0;
            // System.out.println("你輸入的字母為:"+word+"\t它的英文順序是:"+number);
            if (input.matches("[A-Z]")) { // 利用正則表示式比對輸入的字元是不是大寫
                if ((65 >= number) || (number <= 90)) {
                    newnumber = (number - 65) + 1;
                    System.out.println("你輸入的字母為:" + word + "\t它的英文順序是:"
                            + newnumber);
                }
            }
            if (input.matches("[a-z]")) { // 利用正則表示式比對輸入的字元是不是小寫
                if ((97 >= number) || (number <= 122)) {
                    newnumber = (number - 97) + 1;
                    System.out.println("你輸入的字母為:" + word + "\t它的英文順序是:"
                            + newnumber);
                }
            }
        } else {
            System.out.print("輸入不正確,請重新輸入英文字母");
        }
    }
}



沒有留言:

張貼留言