package com.homwork0120;
import java.util.Scanner;
/**
* @Author: CHRISTINA
* Created on2021/1/20 0020
**/
/**
* 键盘录入数据,要求数据是四位的整数,现需要对数据进行加密,加密规则如下:
* 每位数字都加上5,然后除以10的余数代替该数字,
* 再将第一位和第四位交换,第二位和第三位交换,
* 请把加密后的数据输出到控制台
**/
public class Demo02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("请输入四位的整数:");
String data= sc.next();//加密数据
char []arr=data.toCharArray();//字符串变数组
if(IsNumber4(arr)){
//是四位数
encryption(arr);
PrintArray(arr);
}
else
System.out.println("请输入合法四位数");
}
//打印数组
public static void PrintArray(char []arr){
for (int i=0 ;i<arr.length;i++){
System.out.print(arr[i]);
}
}
//判断是否是四位整数
public static boolean IsNumber4(char []arr){
if(arr.length!=4)
return false;
return true;//是四位数
}
//加密
public static void encryption(char []arr){
int length=arr.length;//数组长度
for(int i=0;i<length/2;i++){
char temp=arr[length-1-i];//暂存
//int——>char
//法一
arr[length-1-i]=(char)((arr[i]-48+5)%10+'0');
arr[i]=(char)((temp-48+5)%10+'0');
//法二
/* arr[length-1-i]=Character.forDigit((arr[i]-48+5)%10,10);
arr[i]=Character.forDigit((temp-48+5)%10,10);*/
}
}
}
important point
- String variable array: char []arr=data.toCharArray();
- int->char
[Note] Can not be written directlyint i=89; char a=(char) i; //这样输出会乱码
Method 1:
char a=Character.forDigit(i,10);
Method 2:
char c = (char)('0' + i); //或者 char c = (char)(48+ i);
With ASCII code