zoukankan      html  css  js  c++  java
  • 《java入门第一季》之java语法部分小案例

    到这里举一个小例子把语法部分梳理一下,下一节开始进入java正式基础——面向对象的学习整理。


    案例:

    /*
    	某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,
    	在传递过程中需要加密,加密规则如下:
    		首先将数据倒序,然后将每位数字都加上5,再用和除以10的余数代替该数字,
    		最后将第一位和最后一位数字交换。 请任意给定一个小于8位的整数,
    		然后,把加密后的结果在控制台打印出来。 
    		
    	题目要求:
    		A:数据是小于8位的整数
    			定义一个int类型的数据
    			int number = 123456;
    		B:加密规则
    			a:首先将数据倒序
    				结果 654321
    			b:然后将每位数字都加上5,再用和除以10的余数代替该数字
    				结果 109876
    			c:最后将第一位和最后一位数字交换
    				结果 609871
    		C:把加密后的结果输出在控制台
    		
    		通过简单的分析,我们知道如果我们有办法把这个数据变成数组就好了。
    		不是直接写成这个样子的:
    			int[] arr = {1,2,3,4,5,6};
    			
    		如何把数据转成数组呢?
    			A:定义一个数据
    				int number = 123456;
    			B:定义一个数组,这个时候问题就来了,数组的长度是多少呢?
    				int[] arr = new int[8]; //不可能超过8
    				在赋值的时候,我用一个变量记录索引的变化。
    				定义一个索引值是0
    				int index = 0;
    			C:获取每一个数据
    				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;
    				...
    */
    class JiaMiDemo {
    	public static void main(String[] args) {
    		//定义一个数据
    		int number = 123456;
    		
    		//定义一个数组
    		int[] arr = new int[8];
    		
    		//把数据中每一位上的数据获取到后存储到数组中
    		/*
    		int index = 0;
    		arr[index] = number%10; //arr[0]=6;
    		index++;
    		arr[index] = number/10%10; //arr[1]=5;
    		index++;
    		arr[index] = mumber/10/10%10; //arr[2]=4;
    		*/
    		
    		//通过观察这个代码,我们发现应该是可以通过循环改进的
    		int index = 0;//index的大小正好是实际数组的长度
    		
    		while(number > 0) { //number=123456,number=12345,number=1234,number=123,number=12,number=1,number=0
    			arr[index] = number%10; //arr[0]=6,arr[1]=5,arr[2]=4,arr[3]=3,arr[4]=2,arr[5]=1
    			index++;//index=1,index=2,index=3,index=4,index=5,index=6
    			number/=10;//number=12345,number=1234,number=123,number=12,number=1,number=0
    		}
    		
    		//然后将每位数字都加上5,再用和除以10的余数代替该数字
    		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;
    		
    		//输出数据
    		for(int x=0; x<index; x++) {
    			System.out.print(arr[x]);
    		}
    		System.out.println();
    	}
    }
    /*
    	把刚才的代码改进一下:
    		A:把数据改进为键盘录入
    		B:把代码改进为方法实现
    		
    		
    		另一个数据的测试:
    		number:1234567
    		第一步:7654321
    		第二步:2109876
    		第三步:6109872
    		
    	知识点:
    		变量
    		数据类型
    		运算符
    		键盘录入
    		语句
    		方法
    		数组
    */
    import java.util.Scanner;
    
    class JiaMiDemo2 {
    	public static void main(String[] args) {
    		//创建键盘录入对象
    		Scanner sc = new Scanner(System.in);
    		
    		//请输入一个数据
    		System.out.println("请输入一个数据(小于8位):");
    		int number = sc.nextInt();
    		
    		//写功能实现把number进行加密
    		//赋值调用
    		String result = jiaMi(number);//方法调用后会产生一个字符串类型的返回值
    		System.out.println("加密后的结果是:"+result);
    	}
    	
    	/*
    		需求:写一个功能,把数据number实现加密。
    		两个明确:
    			返回值类型:String 做一个字符串的拼接。
    			参数列表:int number
    	*/
    	public static String jiaMi(int number) {
    		//定义数组
    		int[] arr = new int[8];
    		
    		//定义索引
    		int index = 0;
    		
    		//把number中的数据想办法放到数组中
    		while(number > 0) {
    			arr[index] = number%10;
    			index++;
    			number /= 10;
    		}
    		
    		//把每个数据加5,然后对10取得余数
    		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;
    		
    		//把数组的元素拼接成一个字符串返回
    		//定义一个(空内容)字符串
    		//String s;//错误: 可能尚未初始化变量s
    		String s = "";//s必须要赋值,不然报错。原因会在写到String类的时候说明。
    		
    		for(int x=0; x<index; x++) {
    			s += arr[x];//字符串的拼接  
    		}
    		
    		return s;
    	}
    }


  • 相关阅读:
    Golang
    Linux美化终端
    MetaSploit Pro 下载地址
    otunnel : 一个和lcx差不多的端口转发的工具
    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
    黑客军火库
    图片后门捆绑利用工具 – FakeImageExploiter
    给自己的QQ群开启腾讯官方的群聊机器人
    ImportError: No module named Crypto.Cipher
    内网渗透小技巧
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299888.html
Copyright © 2011-2022 走看看