关于Java中数组和各类循环问题的代码解法汇总
/*数组打印的方式
public static void main(String[] args){
String str=new String(“hello”);
char[]chs={‘w’,‘o’,‘r’,‘l’,‘d’};
change(str,chs);
System.out.println(str+" "+new String(chs));//hello world
StringBuffer sb=new StringBuffer ("hello");
change(sb);
System.out.println(sb);//helloworld
}
public static void change(StringBuffer sb){
sb.append("world");
}
public static void change(String str,char[]chs){
str.replace('h','h');
chs[0]='w';
}*/
/*数组拷贝的方式
public static void copyArray(int[] array1,int[] array2){
for (int i = 0;i < array.length;i++){
array2[i] = array[i];
}
}
public static void main(String[] args){
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[array1.length];
System.out.println(toString(array2));
copyArray(array1,array2);
System.out.println(toString(array2));
}*/
//将偶数放到奇数前面。
/*
public static void func(int[] array){//需要导入包
int i = 0;
int j = array.length-1;
while(i != j){
while(i < j && array[i]%2 == 0){//遇到奇数停止
i++;
}
while(i < j && array[j]%2 != 0){//遇到偶数停止
j--;
}
if(i != j){
int tmp=array[i];
array[i]=array[j];
array[j]=tmp;
}
}
}
public static void main(String[] args){//注意大写
int[] array = {1,2,3,4,5,6,7,8,9};//新变量需要int
func(array);
System.out.print(Arrays.toString(array));//以字符串形式打印数组
}
public static int binarySearch(int[] array,int key){//使用二进制搜索算法搜索指定值的指定字节数组
int left =0;
int right=array.length-1;
while(left<=right){
int mid = (left+right)/2;
if(array[mid] == key){
return mid;
}else if(array[mid] > key){
right = mid -1;
}else{
left = mid +1;
}
}
return -1;
}
public static void main(String[] args){
int[] array = {1,2,3,4,5,6,7,8,9};//注意[]的增加
System.out.println(binarySearch(array,8));//key:8,写入需查找的关键数值key
}*/
//水仙花数打印
/*
public static void waterFlower(int n){
for (int i = 0;i <= n;i++){
int sum = 0;
int count = 0;
int tmp = i;
while(tmp != 0){
tmp=tmp/10;
count++;
}
tmp = i;
while(tmp != 0){
sum = sum + (int)Math.pow(tmp%10,count);
tmp = tmp/10;
}
if(sum == i){
System.out.println(i);
}
}
}
//设置密码,三次验证输入的程序代码
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
waterFlower(n);
}
public static void guess(){
Scanner scanner = new Scanner(System.in);
int count = 3;
while(count != 0){
System.out.print("请输入你的密码");
String password =scanner.nextLine();
//if(password == "abcde"){(不能用相等,应该用equal来匹配)
if("abcde".equals(password)){
System.out.println("登陆成功");
break;
}else{
count--;
System.out.println("你还有"+count+"次机会!");
}
}
}
public static void main(String[] args){
guess();
}*/
///冒泡排序方法对数组进行排序
public static void bubbleSort(int[] array){
for(int i = 0;i < array.length-1;i++){
for(int j = 0;j < array.length-1-i;j++){
if(array[j]>array[j+1]){
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
}
}
}
}
public static void main(String[] args){
int[] array = {21,32,4,56,78,9,7,56,23};
System.out.println(Arrays.toString(array));
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
//快速排序方法对数组进行排序
public static void main(String[] args){
int[] array = {21,32,4,56,78,9,7,56,23};
System.out.println(Arrays.toString(array));
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}/
//冒泡排序方法对数组进行排序【进阶版】
public static void bubbleSort(int[] array) {
boolean flg = false;
//趟数
for (int i = 0; i < array.length-1; i++) {
flg = false;
//每一趟的次数
for (int j = 0; j < array.length-1-i; j++) {
if(array[j] > array[j+1]) {
int tmp = array[j];
array[j] = array[j+1];
array[j+1] = tmp;
flg = true;
}
}
System.out.println(Arrays.toString(array));
//if(flg = false) {
if(!flg) \
break;
}
}
}
public static void main(String[] args) {
//Arrays工具类当中的方法演示
int[] array = {1,2,3,4,5,6};
bubbleSort(array);
System.out.println(Arrays.toString(array));
}