Bootstrap

【每日一练】day3

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 
🎈🎈作者主页: 🎈丠丠64-CSDN博客🎈


✨✨ 帅哥美女们,我们共同加油!一起进步!✨✨ 

目录

一、翻转数组

题目

思路

解题

二、二维数组求和

题目

思路

解题

三、动态字符串

题目

思路

解题

四、统计字符串字母出现的个数

题目

思路

解题

五、十进制的转换

题目

​编辑

思路

解题


一、翻转数组

题目

思路

将数组的最左边下标和最右边下标找出来,然后进行互换,再分别++ --挪动位置,直到右边小于左边退出循环

解题

import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner scanner = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            arr[i] = scanner.nextInt();
        }
        
        //打印翻转前
        System.out.println(Arrays.toString(arr));

        //左右下标
        int right = arr.length-1;
        int left = 0;

        while(right > left){

            //交换
            arr[right] = arr[right] + arr[left] - (arr[left] = arr[right]);
            right--;
            left++;
        }
        
        //打印翻转后
        System.out.println(Arrays.toString(arr));
    }
}

二、二维数组求和

题目

思路

两个for循环遍历二维数组行列是很常规的写法,也可以使用新特征foreach来遍历二维数组

解题

public class Main {
    public static void main(String[] args) {
        int[][]  arr = {{11,33,55},{22,44,66,88},{131,214,315,146},{928,827,726,625},{424,525}};
        int sum=add(arr);
        System.out.println(sum);
    }

    public static int add(int[][] arr) {
        
        int sum=0;

        1.第一种
        for(int i = 0;i < arr.length;i++){
            for(int j = 0; j < arr[i].length;j++){
                sum += arr[i][j];
            }
        }

        2.第二种
        for(int[] arr1 : arr){
            for(int arr2 : arr1){
                sum += arr2;
            }
        }

        return sum;
    }
}

三、动态字符串

题目

思路

因为String类型字符串不可变,我们用这个字符串创建一个新的StringBuilder型的字符串,然后从字符串末尾第3位开始,每次三位三位地遍历,将逗号用insert函数插入其中。

最后将StringBuilder型转变成String输出即可。

解题

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        StringBuilder newstr = new StringBuilder(str); //用原字符串创建可改变的字符串 
        for(int i = str.length() - 3; i >= 0; i -= 3){ //从末尾开始,三个三个遍历
           newstr.insert(i, ','); //插入逗号
        }
        System.out.println(newstr.toString()); //转变成String类输出
    }
}

四、统计字符串字母出现的个数

题目

思路

用replace替换统计的字符串使其消失,原有的字符串长度减去被替换的字符串长度,就是被统计的个数

解题

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        String string = "H e l l o ! n o w c o d e r";
        Scanner scanner= new Scanner(System.in);
        String word = scanner.next();
        scanner.close();
        System.out.println(check(string, word));
    }
    public static int check(String str, String word) {
        
        //用replace替换消失
        return str.length() - str.replace(word,"").length();
    }
}

五、十进制的转换

题目

思路

可以使用包装类的各个方法进行转换,也可以手动使用辗转相除法求出

Integer.toString(int num, int tar)
str表示要转成字符串的数字,tar表示要转成的进制

然后我们介绍一下辗转相除法,使用递归(除到结果为1停止)

解题

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        
        1.第一种
        System.out.println(Integer.toBinaryString(num));
        
        2.第二种
        Ststem.out.println(Integer.toSteing(num,2));
        
        3.第三种
        fun(num);
    }

    public static void fun(int tar) {
        int temb = tar / 2;
        int temp = tar % 2;
        if(temb >= 1){
            fun(temb);
        }
        System.out.print(temp);
    }
}

每日五道经典题哦,循序渐进,关注我一起刷题!!

;