第一行输入一个长度为
的字符串
,代表给定的明文字符串;
第二行输入一个长度为
的字符串
,代表给定的密文字符串。
除此之外,保证字符串
和
中仅包含英文字母和数字。
第一行输出一个字符串,代表加密后的
。
第二行输出一个字符串,代表解密后的
。
abcdefg1 0BCDEFGH
BCDEFGH2 9abcdefg
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String input1 = in.nextLine();
String input2=in.nextLine();
System.out.println(encode(input1));
System.out.println(decode(input2));
}
public static String encode(String str) {
char[] charArrs = str.toCharArray();
for (int i = 0; i < charArrs.length; i++) {
if (Character.isDigit(charArrs[i])) {
charArrs[i] = (charArrs[i] < '9') ? (char)(charArrs[i] + 1) : '0';
} else if (Character.isLowerCase(charArrs[i])) {
charArrs[i] = charArrs[i] != 'z' ? (char)(Character.toUpperCase(
charArrs[i] + 1)) : 'A';
} else {
charArrs[i] = charArrs[i] != 'Z' ? (char)(Character.toLowerCase(
charArrs[i] + 1)) : 'a';
}
}
return new String(charArrs);
}
public static String decode(String str) {
char[] charArrs = str.toCharArray();
for (int i = 0; i < charArrs.length; i++) {
if (Character.isDigit(charArrs[i])) {
charArrs[i] = (charArrs[i] > '0') ? (char)(charArrs[i] - 1) : '9';
} else if (Character.isLowerCase(charArrs[i])) {
charArrs[i] = charArrs[i] != 'a' ? (char)(Character.toUpperCase(
charArrs[i] - 1)) : 'Z';
} else {
charArrs[i] = charArrs[i] != 'A' ? (char)(Character.toLowerCase(
charArrs[i] - 1)) : 'z';
}
}
return new String(charArrs);
}
} 细心题,无难度,分别接收待加密和待解密字符串,
①若为待加密串,遍历此字符串中的每一个字符,当c >= 'a' && c < 'z'时,(char) (c - 32 + 1)转换为‘B’ ~‘Z’,
当c >= 'A' && c < 'B'时,(char) (c + 32 + 1)转换为‘b’ ~‘z’,
当c >= '0' && c < '9'时,(char) (c + 1)转换为‘1’ ~‘9’,
注意此时要特判c == ‘9’ || c == 'z' || c == 'Z',
分别应转为'0'、‘A’、‘a',依次输出这些字符即可完成加密。别忘了加密结束要换行,不然后续解密和加密在同一行。
②对解密操作也是类似。输出即可。
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String jiamiStr = in.nextLine();
String jiemiStr = in.nextLine();
for (int i = 0; i < jiamiStr.length(); i++) {
char c = jiamiStr.charAt(i);
if (c >= 'a' && c < 'z') {
System.out.print((char) (c - 32 + 1));
} else if (c >= '0' && c < '9') {
System.out.print((char) (c + 1));
} else if (c >= 'A' && c < 'Z') {
System.out.print((char) (c + 32 + 1));
} else if (c == 'z') {
System.out.print('A');
} else if (c == 'Z') {
System.out.print('a');
} else if (c == '9') {
System.out.print('0');
}
}
System.out.println();
for (int i = 0; i < jiemiStr.length(); i++) {
char c = jiemiStr.charAt(i);
if (c > 'a' && c <= 'z') {
System.out.print((char) (c - 32 - 1));
} else if (c > '0' && c <= '9') {
System.out.print((char) (c - 1));
} else if (c > 'A' && c <= 'Z') {
System.out.print((char) (c + 32 - 1));
} else if (c == 'a') {
System.out.print('Z');
} else if (c == 'A') {
System.out.print('z');
} else if (c == '0') {
System.out.print('9');
}
}
}
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine() ) {
String s = in.nextLine();//需要加密的字符串
String t = in.nextLine();//需要解密的字符串
for (char c : s.toCharArray()) {
if (!Character.isLetterOrDigit(c)) { //判断s是否为字母和数字组成
return;
}
}
for (char c : t.toCharArray()) {
if (!Character.isLetterOrDigit(c)) { //判断t是否为字母和数字组成
return;
}
}
System.out.println(encryption(s));//输出加密后的字符串
System.out.println(decryption(t));//输出解密后的字符串
}
}
//加密
private static String encryption(String s) {
StringBuilder sb = new StringBuilder() ;
for (char c : s.toCharArray()) {
char temp = ' ';//初始化temp
//处理大写
if (Character.isUpperCase(c)) {
if (c == 'Z') {
temp = 'a';
} else {
temp = Character.toLowerCase(c);
char[] arr = Character.toChars(temp + 1);
temp = arr[0];
}
}
//处理小写
if (Character.isLowerCase(c)) {
if (c == 'z') {
temp = 'A';
} else {
temp = Character.toUpperCase(c);
char[] arr = Character.toChars(temp + 1);
temp = arr[0];
}
}
//处理数字
if (Character.isDigit(c)) {
if (c == '9') {
temp = '0';
} else {
char[] arr = Character.toChars(c + 1);
temp = arr[0];
}
}
sb.append(temp);
}
return sb.toString();//返回加密后的字符串
}
//解密
private static String decryption(String t) {
StringBuilder sb = new StringBuilder() ;
for (char c : t.toCharArray()) {
char temp = ' ';
//处理大写
if (Character.isUpperCase(c)) {
if (c == 'A') {
temp = 'z';
} else {
temp = Character.toLowerCase(c);
char[] arr = Character.toChars(temp - 1);
temp = arr[0];
}
}
//处理小写
if (Character.isLowerCase(c)) {
if (c == 'a') {
temp = 'Z';
} else {
temp = Character.toUpperCase(c);
char[] arr = Character.toChars(temp - 1);
temp = arr[0];
}
}
//处理数字
if (Character.isDigit(c)) {
if (c == '0') {
temp = '9';
} else {
char[] arr = Character.toChars(c - 1);
temp = arr[0];
}
}
sb.append(temp);
}
return sb.toString();
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
String pass = scan.nextLine();
String secret = scan.nextLine();
char[] passChars = pass.toCharArray();
char[] secretChars = secret.toCharArray();
for (int i = 0; i < passChars.length; i++) {
passChars[i] = changeChar(passChars[i], 1);
}
for (int i = 0; i < secretChars.length; i++) {
secretChars[i] = changeChar(secretChars[i], -1);
}
System.out.println(new String(passChars));
System.out.println(new String(secretChars));
}
public static char changeChar(char c, int offset) {
int temp;
if (c >= 65 && c <= 90) {
temp = c - 65 + offset;
if (temp < 0) temp += 26;
c = (char) (temp % 26 + 97);
} else if (c >= 97 && c <= 122) {
temp = c - 97 + offset;
if (temp < 0) temp += 26;
c = (char) (temp % 26 + 65);
} else if (c >= 48 && c <= 57) {
temp = c - 48 + offset;
if (temp < 0) temp += 10;
c = (char) (temp % 10 + 48);
}
return c;
}
}
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] s = in.next().toCharArray();
char[] t = in.next().toCharArray();
// 对s加密 (+1)
for (int i = 0; i < s.length; i++) {
if (s[i] <= '9') {
s[i] = (char)('0' + (s[i] - '0' + 1) % 10); // 0-9
} else if (s[i] <= 'Z') {
s[i] = (char)('a' + (s[i] - 'A' + 1) % 26); // A-Z
} else {
s[i] = (char)('A' + (s[i] - 'a' + 1) % 26); // a-z
}
}
// 对t解密 (同上,-1不够要+N)
for (int i = 0; i < t.length; i++) {
if (t[i] <= '9') {
t[i] = (char)('0' + (t[i] - '0' - 1 + 10) % 10); // 0-9
} else if (t[i] <= 'Z') {
t[i] = (char)('a' + (t[i] - 'A' - 1 + 26) % 26); // A-Z
} else {
t[i] = (char)('A' + (t[i] - 'a' - 1 + 26) % 26); // a-z
}
}
System.out.println(new String(s));
System.out.println(new String(t));
}
} public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
String line = sc.nextLine();
String line1 = sc.nextLine();
char[] chars = line.toCharArray();
char[] chars1 = line1.toCharArray();
System.out.println(encipher(chars));
System.out.println(decrypt(chars1));
}
}
// 加密
private static StringBuilder encipher(char[] chars) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
if (Character.isLetter(chars[i])) {
if (Character.isUpperCase(chars[i])) {
// 转小写
char toLowerCase = Character.toLowerCase(chars[i]);
builder.append(Character.isLetter((char)(toLowerCase + 1))?(char)(toLowerCase + 1):"a");
} else {
// 转大写
char toUpperCase = Character.toUpperCase(chars[i]);
builder.append(Character.isLetter((char)(toUpperCase + 1))?(char)(toUpperCase + 1):"A");
}
} else {
Integer integer = Integer.valueOf(chars[i])-48;
builder.append((integer + 1) % 10);
}
}
return builder;
}
// 解密
private static StringBuilder decrypt(char[] chars) {
StringBuilder builder = new StringBuilder();
for (int i = 0; i < chars.length; i++) {
if (Character.isLetter(chars[i])) {
if (Character.isUpperCase(chars[i])) {
char toLowerCase = Character.toLowerCase(chars[i]);
builder.append(Character.isLetter((char)(toLowerCase - 1))?(char)(toLowerCase - 1):"z");
} else {
char toUpperCase = Character.toUpperCase(chars[i]);
builder.append(Character.isLetter((char)(toUpperCase - 1))?(char)(toUpperCase - 1):"Z");
}
} else {
Integer integer = Integer.valueOf(chars[i])-48;
builder.append((integer - 1) % 10 < 0 ? 9 : (integer - 1) % 10);
}
}
return builder;
} import java.util.Scanner;
import java.lang.Character;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String text = in.next();
String code = in.next();
System.out.println(encode(text));
System.out.println(decode(code));
}
public static String encode(String text) {
String code = "";
for (char c : text.toCharArray()) {
if (Character.isDigit(c)) {
code += (c + 3) / 10 == 5 ? (char)(c + 1) : '0';
} else if (Character.isLowerCase(c)) {
code += (c + 8) / 26 == 4 ? (char)(c - 31) : 'A';
} else if (Character.isUpperCase(c)) {
code += (c + 14) / 26 == 3 ? (char)(c + 33) : 'a';
} else {
code += c;
}
}
return code;
}
public static String decode(String code) {
String text = "";
for (char c : code.toCharArray()) {
if (Character.isDigit(c)) {
text += (c + 2) % 10 > 0 ? (char)(c - 1) : '9';
} else if (Character.isLowerCase(c)) {
text += (c + 7) % 26 > 0 ? (char)(c - 33) : 'Z';
} else if (Character.isUpperCase(c)) {
text += (c + 13) % 26 > 0 ? (char)(c + 31) : 'z';
} else {
text += c;
}
}
return text;
}
}
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String one = in.nextLine();
char[] oneArr = one.toCharArray();
String two = in.nextLine();
char[] twoArr = two.toCharArray();
StringBuffer enc = new StringBuffer();
StringBuffer dec = new StringBuffer();
for (char c : oneArr) {
enc.append(convert(c,1));
}
for (char c : twoArr) {
dec.append(convert(c,2));
}
System.out.println(enc);
System.out.println(dec);
}
}
private static char convert(char a, int type) {
if (type == 1){
if (a >= 'a' && a < 'z') {
return (char) (a - 31);
}
if (a >= 'A' && a < 'Z') {
return (char) (a + 33);
}
if (a >= '0' && a < '9') {
return (char) (a + 1);
}
if (a == 'z') {
return 'A';
}
if (a == 'Z') {
return 'a';
}
if (a == '9') {
return '0';
}
}else {
if (a > 'a' && a <= 'z') {
return (char) (a - 33);
}
if (a > 'A' && a <= 'Z') {
return (char) (a + 31);
}
if (a > '0' && a <= '9') {
return (char) (a - 1);
}
if (a == 'a') {
return 'Z';
}
if (a == 'A') {
return 'z';
}
if (a == '0') {
return '9';
}
}
return a;
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
char[] in1 = in.nextLine().toCharArray();
char[] in2 = in.nextLine().toCharArray();
String src = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
String code = "bcdefghijklmnopqrstuvwxyzaBCDEFGHIJKLMNOPQRSTUVWXYZA1234567890";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < in1.length; i++) {
sb.append(code.charAt(src.indexOf(in1[i])));
}
System.out.println(sb);
sb.setLength(0);
for (int i = 0; i < in2.length; i++) {
sb.append(src.charAt(code.indexOf(in2[i])));
}
System.out.println(sb);
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s1 = in.nextLine();
String s2 = in.nextLine();
StringBuilder encoding = new StringBuilder();
StringBuilder decoding = new StringBuilder();
for(int i = 0; i < s1.length(); i++){
char c = s1.charAt(i);
if( c >= 'a' && c <= 'z'){
encoding.append((char)('A'+(c - 'a' + 1) % 26));
}else if ( c >= 'A' && c <= 'Z'){
encoding.append((char)('a'+(c - 'A' + 1) % 26));
}else{
encoding.append((char)('0'+(c - '0' + 1) % 10));
}
}
for(int i = 0; i < s2.length(); i++){
char c = s2.charAt(i);
if( c >= 'a' && c <= 'z'){
decoding.append((char)('Z'+(c - 'z' - 1) % 26));
}else if ( c >= 'A' && c <= 'Z'){
decoding.append((char)('z'+(c - 'Z' - 1) % 26));
}else{
decoding.append((char)('9'+(c - '9' - 1) % 10));
}
}
System.out.println(new String(encoding));
System.out.print(new String(decoding));
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
char[] zip = in.nextLine().toCharArray();
char[] unzip = in.nextLine().toCharArray();
for (int i = 0; i < zip.length; i ++) {
zip[i] = change(zip[i], 1);
}
for (int i = 0; i < unzip.length; i ++) {
unzip[i] = change(unzip[i], -1);
}
System.out.println(new String(zip));
System.out.println(new String(unzip));
}
}
public static char change(char c, int k) {
if (Character.isLowerCase(c)) {
int val = (c - 'a' + k + 26) % 26;
return (char)('A' + val);
} else if (Character.isUpperCase(c)) {
int val = (c - 'A' + k + 26) % 26;
return (char)('a' + val);
} else {
int val = (c - '0' + k + 10) % 10;
return (char)('0' + val);
}
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String arr[]=new String [2];
int index=0;
while(in.hasNextLine()){
arr[index]=in.nextLine();
index++;
}
for(int i=0;i<arr[0].length();i++){
if(i<arr[0].length()-1){
if(arr[0].charAt(i)>='A'&&arr[0].charAt(i)<'Z'){
int num=((int)arr[0].charAt(i))+33;
System.out.print((char)num);
}else if(arr[0].charAt(i)=='Z'){
System.out.print("a");
}else if(arr[0].charAt(i)>='a'&&arr[0].charAt(i)<'z'){
int num=((int)arr[0].charAt(i))-31;
System.out.print((char)num);
}else if(arr[0].charAt(i)=='z') {
System.out.print("A");
}else if(arr[0].charAt(i)>='0'&&arr[0].charAt(i)<'9'){
int num=((int)arr[0].charAt(i))+1;
System.out.print((char)num);
}else if(arr[0].charAt(i)=='9') {
System.out.print("0");
}
}else {
if(arr[0].charAt(i)>='A'&&arr[0].charAt(i)<'Z'){
int num=((int)arr[0].charAt(i))+33;
System.out.println((char)num);
}else if(arr[0].charAt(i)=='Z'){
System.out.println("a");
}else if(arr[0].charAt(i)>='a'&&arr[0].charAt(i)<'z'){
int num=((int)arr[0].charAt(i))-31;
System.out.println((char)num);
}else if(arr[0].charAt(i)=='z') {
System.out.println("A");
}else if(arr[0].charAt(i)>='0'&&arr[0].charAt(i)<'9'){
int num=((int)arr[0].charAt(i))+1;
System.out.println((char)num);
}else if(arr[0].charAt(i)=='9') {
System.out.println("0");
}
}
}
for(int i=0;i<arr[1].length();i++) {
if (arr[1].charAt(i) > 'A' && arr[1].charAt(i) <= 'Z') {
int num = ((int) arr[1].charAt(i)) + 31;
System.out.print((char) num);
} else if (arr[1].charAt(i) == 'A') {
System.out.print("z");
} else if (arr[1].charAt(i) > 'a' && arr[1].charAt(i) <= 'z') {
int num = ((int) arr[1].charAt(i))-33;
System.out.print((char) num);
} else if (arr[1].charAt(i) == 'a') {
System.out.print("Z");
} else if (arr[1].charAt(i) > '0' && arr[1].charAt(i) <= '9') {
int num = ((int) arr[1].charAt(i)) - 1;
System.out.print((char) num);
} else if (arr[1].charAt(i) == '0') {
System.out.print("9");
}
}
}
}
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String encode = sc.next();
String decode = sc.next();
encode(encode);
decode(decode);
}
public static void encode(String encode) {
char[] chars = encode.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (Character.isUpperCase(chars[i])) {
chars[i] = chars[i] == 'Z' ? 'a' : (char) (chars[i] + 1 + 32);
} else if (Character.isLowerCase(chars[i])) {
chars[i] = chars[i] == 'z' ? 'A' : (char) (chars[i] + 1 - 32);
} else if (Character.isDigit(chars[i])) {
chars[i] = chars[i] == '9' ? '0' : (char) (chars[i] + 1);
}
}
System.out.println(String.valueOf(chars));
}
public static void decode(String decode) {
char[] chars = decode.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (Character.isUpperCase(chars[i])) {
chars[i] = chars[i] == 'A' ? 'z' : (char) (chars[i] - 1 + 32);
} else if (Character.isLowerCase(chars[i])) {
chars[i] = chars[i] == 'a' ? 'Z' : (char) (chars[i] - 1 - 32);
} else if (Character.isDigit(chars[i])) {
chars[i] = chars[i] == '0' ? '9' : (char) (chars[i] - 1);
}
}
System.out.println(String.valueOf(chars));
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextLine()) { // 注意 while 处理多个 case
String a = in.nextLine();
String b = in.nextLine();
System.out.println(encript(a));
System.out.println(decript(b));
}
}
public static String encript(String str){
char[] data=str.toCharArray();
for(int i=0;i<data.length;i++){
char t=data[i];
if(Character.isLetter(t)){
if(t=='z'){
data[i]='A';
}else if(t=='Z'){
data[i]='a';
}else{
data[i]=(char)((t+1)^' ');
}
}else{
if(t=='9'){
data[i]='0';
}else{
data[i]=(char)(t+1);
}
}
}
return String.valueOf(data);
}
public static String decript(String str){
char[] data=str.toCharArray();
for(int i=0;i<data.length;i++){
char t=data[i];
if(Character.isLetter(t)){
if(t=='a'){
data[i]='Z';
}else if(t=='A'){
data[i]='z';
}else{
data[i]=(char)((t-1)^' ');
}
}else{
if(t=='0'){
data[i]='9';
}else{
data[i]=(char)(t-1);
}
}
}
return String.valueOf(data);
}
} import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str1 = in.nextLine();
String str2 = in.nextLine();
//使用字典法,简洁明了
String a = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
String b = "BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza1234567890";
StringBuilder out1 = new StringBuilder();
StringBuilder out2 = new StringBuilder();
for (int i = 0; i < str1.length(); i++) {
out1.append(b.charAt(a.indexOf(str1.charAt(i))));
}
for (int i = 0; i < str2.length(); i++) {
out2.append(a.charAt(b.indexOf(str2.charAt(i))));
}
System.out.println(out1);
System.out.println(out2);
}
} import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String plaintext = in.next();
String ciphertext = in.next();
System.out.println(encrypt(plaintext.toCharArray()));
System.out.println(decrypt(ciphertext.toCharArray()));
}
static char[] encrypt(char[] charArray) {
for (int i = 0; i < charArray.length; i++) {
if (charArray[i] >= 'a' && charArray[i] <= 'z') {
charArray[i] -= 'a';
charArray[i] = (char) ((charArray[i] + 1) % 26);
charArray[i] += 'A';
} else if (charArray[i] >= 'A' && charArray[i] <= 'Z') {
charArray[i] -= 'A';
charArray[i] = (char) ((charArray[i] + 1) % 26);
charArray[i] += 'a';
} else if (charArray[i] >= '0' && charArray[i] <= '9') {
charArray[i] -= '0';
charArray[i] = (char) ((charArray[i] + 1) % 10);
charArray[i] += '0';
}
}
return charArray;
}
static char[] decrypt(char[] charArray) {
for (int i = 0; i < charArray.length; i++) {
if (charArray[i] >= 'a' && charArray[i] <= 'z') {
charArray[i] -= 'a';
charArray[i] = (char) ((charArray[i] + 25) % 26);
charArray[i] += 'A';
} else if (charArray[i] >= 'A' && charArray[i] <= 'Z') {
charArray[i] -= 'A';
charArray[i] = (char) ((charArray[i] + 25) % 26);
charArray[i] += 'a';
} else if (charArray[i] >= '0' && charArray[i] <= '9') {
charArray[i] -= '0';
charArray[i] = (char) ((charArray[i] + 9) % 10);
charArray[i] += '0';
}
}
return charArray;
}
}