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 }
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 }
运行结果截图
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 }
运行结果截图