JAVA进阶1

间歇性混吃等死,持续性踌躇满志系列-------------第1天

1、冒泡排序法

import java.util.Arrays;

public class SumNum{
public static void main(String[] args){
int[] array = new int[]{43,23,1,64,32}; //声明并初始化一维数组
System.out.println("冒泡排序法的过程是:");
for(int i =1;i<array.length;i++){
for(int j =0;j<array.length-i;j++){ //比较相邻两个元素,较大的数往后冒泡
if(array[j]>array[j+1]){
int temp = array[j]; //把第一个元素值保持到临时变量中
array[j] = array[j+1]; //把第二个元素值保存到第一个元素单元中
array[j+1] =temp; //把第一个元素原值保存到第二个元素中
}
System.out.print(array[j]+" "); //把排序后的数组元素显示到文本域中
}
System.out.print("【");
for(int j = array.length-i;j<array.length;j++){
System.out.print(array[j]+" "); //把排序后的数组元素显示到文本域中
}
System.out.println("】");
}
}
}

 运行结果截图

 

2、输出九宫格

 1 public class SumNum{
 2     public static void main(String[] args){
 3     int arr[][] = new int[3][3];    //创建一个3阶矩阵
 4     int a =2;                       //第3行的行下标
 5     int b =3/2;                     //第2列的列下标
 6     for(int i=1;i<=9;i++){          //给数组赋值
 7         arr[a++][b++] = i;
 8         if(i%3==0){                 //如果i是3的倍数
 9             a =a-2;
10             b =b-1;
11         }else{                      //不是3的倍数
12             a = a%3;
13             b = b%3;
14         }
15     }
16     System.out.println("输出九宫格:"); //遍历输出九宫格
17     for(int i=0;i<3;i++){
18         for(int j=0;j<3;j++){
19             System.out.print(arr[i][j]+" ");
20         }
21         System.out.print("\n");
22     }
23     }
24 }

 运行结果截图

3、实现字符串加密

 1 public class SumNum{
 2     public static String EandU(String value,char secret){            //对value加密,secret密文字符
 3         byte[] bt = value.getBytes();                                //将需要加密的内容转换为字节数组
 4         for(int i =0;i<bt.length;i++){
 5             bt[i] =(byte)(bt[i]^(int)secret);                        //通过异或运算进行加密
 6         }
 7         return new String(bt,0,bt.length);                            //返回加密后的字符串
 8     }
 9     public static void main(String[] args){
10         String value = "你好时间";      //需要加密的字符内容
11         char secret = '祈';             //密文字符
12         System.out.println("原字符串为:"+value);
13         String encrypt = SumNum.EandU(value,secret);  //加密
14         System.out.println("加密后的值"+encrypt);
15         String uncrypt = SumNum.EandU(encrypt,secret); //解密
16         System.out.println("解密后的值:"+uncrypt);
17     }
18 }
View Code

4、对象的比较

1 public class SumNum{
2     public static void main(String[] args){
3         String c1 =new String("avsdf");                          //创建两个String型对象
4         String c2 =new String("avsdf");
5         String c3=c1;                                                    //将c1对象引用赋予c3
6         System.out.println("c2==c3的运算结果为:"+(c2==c3));             //使用==比较c2,c3
7         System.out.println("c2.equals(c3)的运算结果为:"+(c2.equals(c3)));      //使用equals比较c2,c3
8     }
9         }
View Code

 运行结果截图

5、汉诺塔问题

 1 public class SumNum{
 2     public static void moveDish(int level,char from,char inter,char to){
 3         if(level==1){                                             //如果只有一个盘子就退出迭代
 4             System.out.println("从"+from+"移动盘子1号到"+to);
 5         }else{                                                    //如果有大于一个盘子就继续迭代
 6             moveDish(level-1,from,to,inter);
 7             System.out.println("从"+from +"移动盘子"+level+" 号到"+to);
 8             moveDish(level-1,inter,from,to);
 9         }
10     }
11     public static void main(String[] args){
12         int sDisks =3;                                             //设置汉诺塔为3阶
13         moveDish(sDisks,'A','B','C');             //实现移动算法
14     }
15         }
View Code

 运行结果截图

 

posted @ 2019-03-12 18:05  贫血的吸血鬼  阅读(206)  评论(0编辑  收藏  举报