字符串反碼(練習)


題目描述

    一個二進制數,將其每一位取反,稱之為這個數的反碼。下面我們定義一個字符的反碼。如果這是一個小寫字符,則它和字符'a’的距離與它的反碼和字符'z’的距離相同;如果是一個大寫字符,則它和字符'A’的距離與它的反碼和字符'Z’的距離相同;如果不是上面兩種情況,它的反碼就是它自身。     舉幾個例子,'a’的反碼是'z’;'c’的反碼是'x’;'W’的反碼是'D’;'1’的反碼還是'1’;'$'的反碼還是'$'。     一個字符串的反碼定義為其所有字符的反碼。我們的任務就是計算出給定字符串的反碼。 
輸入描述:
    輸入每行都是一個字符串,字符串長度不超過 80 個字符。如果輸入只有!,表示輸入結束,不需要處理。
輸出描述:
對於輸入的每個字符串,輸出其反碼,每個數據占一行。

輸入例子:
Hello 
JLU-CCST-2011
!

輸出例子:
Svool 
QOF-XXHG-2011


實現代碼如下:
import java.util.Scanner;

public class 字符串反碼 {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (true) {
            String str = in.nextLine();
            if (str.length() == 1 && str.charAt(0) == '!')    //也可以是if (str.equals("!"))
                break;
            for (int i = 0; i < str.length(); i++) {
                if (str.charAt(i) >= 'a' && str.charAt(i) <= 'z') {
                    int t = str.charAt(i) - 'a';
                    System.out.printf("%c", 'z' - t);
                } else if (str.charAt(i) >= 'A' && str.charAt(i) <= 'Z') {
                    int t = str.charAt(i) - 'A';
                    System.out.printf("%c", 'Z' - t);
                } else
                    System.out.print(str.charAt(i));
            }
            System.out.println();
        }
        in.close();

    }

}
 
         

 

 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM