某個公司采用公用電話傳遞數(shù)據(jù)信息,數(shù)據(jù)是小于8位的整數(shù),為了確保安全,
在傳遞過程中需要加密,加密規(guī)則如下:
首先將數(shù)據(jù)倒序,然后將每位數(shù)字都加上5,再用和除以10的余數(shù)代替該數(shù)字,
最后將第一位和最后一位數(shù)字交換。 請任意給定一個小于8位的整數(shù),
然后,把加密后的結(jié)果在控制臺打印出來。
題目要求:
A:數(shù)據(jù)是小于8位的整數(shù)
定義一個int類型的數(shù)據(jù)
int number = 123456;
B:加密規(guī)則
a:首先將數(shù)據(jù)倒序
結(jié)果 654321
b:然后將每位數(shù)字都加上5,再用和除以10的余數(shù)代替該數(shù)字
結(jié)果 109876
c:最后將第一位和最后一位數(shù)字交換
結(jié)果 609871
C:把加密后的結(jié)果輸出在控制臺
通過簡單的分析,我們知道如果我們有辦法把這個數(shù)據(jù)變成數(shù)組就好了。
不是直接寫成這個樣子的:
int[] arr = {1,2,3,4,5,6};
如何把數(shù)據(jù)轉(zhuǎn)成數(shù)組呢?
A:定義一個數(shù)據(jù)
int number = 123456;
B:定義一個數(shù)組,這個時候問題就來了,數(shù)組的長度是多少呢?
int[] arr = new int[8]; //不可能超過8
在賦值的時候,我用一個變量記錄索引的變化。
定義一個索引值是0
int index = 0;
C:獲取每一個數(shù)據(jù)
int ge = number%10
int shi = number/10%10
int bai = number/10/10%10
arr[index] = ge;
index++;
arr[index] = shi;
index++;
arr[index] = bai;
源代碼:
import java.util.Scanner;class JiaMiMain {	public static void main(String[] args) {		// 創(chuàng)建鍵盤錄入對象		Scanner sc = new Scanner(System.in);		// 請輸入一個數(shù)據(jù)		System.out.println("請輸入一個數(shù)據(jù)(小于8位):");		int number = sc.nextInt();		// 寫功能實現(xiàn)把number進(jìn)行加密		// 調(diào)用		String result = jiaMi(number);		System.out.println("加密后的結(jié)果是:" + result);	}	/*	 * 需求:寫一個功能,把數(shù)據(jù)number實現(xiàn)加密。 兩個明確: 返回值類型:String 做一個字符串的拼接。 參數(shù)列表:int number	 */	public static String jiaMi(int number) {		// 定義數(shù)組		int[] arr = new int[8];		// 定義索引		int index = 0;		// 把number中的數(shù)據(jù)想辦法放到數(shù)組中		while (number > 0) {			arr[index] = number % 10;			index++;			number /= 10;		}		// 把每個數(shù)據(jù)加5,然后對10取得余數(shù)		for (int x = 0; x < index; x++) {			arr[x] += 5;			arr[x] %= 10;		}		// 把第一位和最后一位交換		int temp = arr[0];		arr[0] = arr[index - 1];		arr[index - 1] = temp;		// 把數(shù)組的元素拼接成一個字符串返回		// 定義一個空內(nèi)容字符串		String s = "";		for (int x = 0; x < index; x++) {			s += arr[x];		}		return s;	}}以上就是小編為大家?guī)淼腏ava簡單實現(xiàn)對一串?dāng)?shù)字采用相應(yīng)的加密策略后傳輸?shù)娜績?nèi)容了,希望對大家有所幫助,多多支持武林網(wǎng)~
新聞熱點
疑難解答
圖片精選