Java基础——常用API(Arrays工具类、冒泡排序、选择排序、二分查找、正则表达式)

   日期:2024-12-26    作者:ete4o 移动:http://ljhr2012.riyuangf.com/mobile/quote/49219.html

           第一轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] arr[3]-arr[4] 比较4次
           第二轮 : arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] 比较3次
           第三轮 : arr[0]-arr[1] arr[1]-arr[2] 比较2次
           第四轮 : arr[0]-arr[1] 比较1次
                 public static void main(String[] args) {
                        int[] arr = {22, 55, 44, 33, 11};
                        // 外循环: 比较的轮数
                        for (int i = 0; i < arr.length - 1; i++) {
                                // 内循环: 比较的次数
                                // -1: 避免索引越界
                                // -i: 提升效率
                                for (int j = 0; j < arr.length - 1 - i; j++) {
                                        if (arr[j] > arr[j + 1]) {
                                                int temp = arr[j];
                                                arr[j] = arr[j + 1];
                                                arr[j + 1] = temp;
                                        }
                                }
                        }
                        System.out.println(Arrays.toString(arr));
                }

                public static void main(String[] args) {
                        int[] arr = {22, 11, 44, 33, 55};
                        for (int i = 0; i < arr.length - 1; i++) {
                                for (int j = i+1; j < arr.length; j++) {
                                        if(arr[i] > arr[j]){
                                                int temp = arr[i];
                                                arr[i] = arr[j];
                                                arr[j] = temp;
                                        }
                                }
                        }
                        System.out.println(Arrays.toString(arr));
                }

四、二分查找(折半查找)前提是数组已经拍好序

        思路:
                1. 定义两个变量记录最小索引, 和最大索引
                2. 折半的动作不止一次, 应该使用循环
                        条件 while(min <= max)
                3. 循环中计算出中间索引
                4. 加入判断
                        元素如果大于中间元素 : min = mid + 1;
                        元素如果小于中间元素 : max = mid – 1;
                        元素如果等于中间元素 : 将索引返回 (mid)
                private static int binarySearch(int[] arr, int num) {
                        // 1. 定义两个变量记录最小索引, 和最大索引
                        int min = 0;
                        int max = arr.length - 1;
                        int mid;
                        // 2. 折半的动作不止一次, 应该使用循环
                        while (min <= max) {
                                // 3. 计算中间索引
                                mid = (min + max) / 2;
                                // 4. 比对
                                if (num > arr[mid]) {
                                        min = mid + 1;
                                } else if (num < arr[mid]) {
                                        max = mid - 1;
                                } else {
                                        return mid;
                                }
                        }
                        // 5. 没找到, 返回-1
                        return -1;
                }

五、正则表达式
        
本质来说就是一个字符串, 可以指定一些规则, 来校验其他字符串.
        [] : 单个字符
        1. 字符类 :
                [abc] 只能是a, b, 或c
                [^abc] 除了a, b, c之外的任何字符
                [a-zA-Z] a到z A到Z,包括(范围
                [a-d[m-p]] a到d,或m通过p([a-dm-p]联合
                [a-z&&[def]] d, e, 或f(交集)
                [a-z&&[^bc]] a到z,除了b和c([ad-z]减法
                [a-z&&[^m-p]] a到z,除了m到p([a-lq-z]减法
        2.预定义字符类:
               . 任何字符
                 : 转义字符
                d 一个数字: [0-9]
                D 非数字: [^0-9]
                s 一个空白字符: [ x0Bf ]
                S 非空白字符: [^s]
                w [a-zA-Z_0-9] 英文、数字、下划线
                W [^w] 一个非单词字符
        3. 数量:
                X?          X, 一次或0次
                X*            X, 零次或多次 (任意次数)
                X+           X, 一次或多次
                X {n}        X,正好n次
                X {n, }      X,至少n次
                X {n,m}    X,至少n但不超过m次

        4.校验QQ号、手机号、邮箱的正则表达式
                QQ号"[1-9]\d{4,11}"
                手机号"[1][3-9]\d{9}"
                邮箱"\w+[@][\w&&[^_]]+(\.[a-z]{2,3})+"


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号