简单编码
Time Limit: 1000 ms
Memory Limit: 65536 KiB
Problem Description
将一串文本译成密码,密码的规律是:
将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:
0——>9
1——>8
2——>7
3——>6
4——>5
5——>4
6——>3
7——>2
8——>1
9——>0
然后将所有字符的顺序颠倒。
将原来的小写字母全部翻译成大写字母,大写字母全部翻译成小写字母,数字的翻译规律如下:
0——>9
1——>8
2——>7
3——>6
4——>5
5——>4
6——>3
7——>2
8——>1
9——>0
然后将所有字符的顺序颠倒。
Input
输入一串文本,最大字符个数不超过100。
Output
输出编码后的结果。
Sample Input
china
Sample Output
ANIHC
Hint
Source
package leslie;
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
char arr[] = new char[200];
arr = input.nextLine().toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= '0' && arr[i] <= '9') {
int t = arr[i] - '0';
t = 9 - t;
arr[i] = String.valueOf(t).charAt(0);
} else if (Character.isLowerCase(arr[i])) { //利用自带的方法,注意必须是else if,否则转换好的字符又被转换回去
arr[i] = Character.toUpperCase(arr[i]);
} else if (Character.isUpperCase(arr[i])) { //
arr[i] = Character.toLowerCase(arr[i]);
}
}
for (int i = arr.length - 1; i >= 0; i--)
System.out.printf("%c", arr[i]);
System.out.println();
input.close();
}
}
package leslie;
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
char arr[] = new char[200];
arr = input.nextLine().toCharArray();
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= '0' && arr[i] <= '9') {
int x = (int)arr[i];//利用ascii
x=57-x+48;
arr[i]=(char)x;
} else if (arr[i] >= 'a' && arr[i] <= 'z') {
int x=(int)arr[i];
x=x-32;
arr[i]=(char)x;
} else if (arr[i] >= 'A' && arr[i] <= 'Z') {
int x=(int)arr[i];
x=x+32;
arr[i]=(char)x;
}
}
for (int i = arr.length - 1; i >= 0; i--)
System.out.printf("%c", arr[i]);
System.out.println();
input.close();
}
}