d14(130-135)-勇敢开始Java,咖啡拯救人生

目录

排序算法

冒泡排序

选择排序

查找算法

二分查找

正则表达式

书写规则

查找信息

异常

自定义异常

异常的处理


排序算法
冒泡排序
int[] arr = {5,7,4,2,3};

for(int i  = 0; i < arr.size() - 1;i++){
    for(int j = 0;j < arr.size() - i - 1;j++){
        if(arr[j] > arr[j + 1]){
            temp = arr[j];
            arr[j] = arr[j+1];
            arr[j+1] = temp;
        }
    }
]
选择排序
int[] arr = {5,7,4,2,3};

for(int i = 0;i < arr.size() - 1;i++){
    for(int j = i + 1;j < arr.size(); j++){
        if(arr[i] > arr[j]){
            int temp = arr[j];
            arr[j] = arr[i];
            arr[i] = temp;
        }
    }
}
int[] arr = {5,7,4,2,3};

for(int i = 0;i < arr.size() - 1;i++){
    int minIndex = i;
    for(int j = i + 1;j < arr.size(); j++){
        if(arr[minIndex] > arr[j]){
            minIndex = j;
        }
    }
    if(i != minIndex){
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
}

查找算法
二分查找

前提:数据有序

int[] arr = {4,7,11,23,33,35,38,61,78,89};
binarySearch(arr,61);
Arrays.binarySearch(arr,61); // 已有算法


public static int binarySearch(int[] arr, int data){
    int left = 0;
    int right = arr.size() - 1;
    while(left <= right){
        int middle = (left + right) / 2;
        if(data < arr[middle]{
            right = middle - 1
        }else if(data > arr[midddle]{
            left = middle + 1;
        }else{
            return middle;
        }
    return -1;
}
正则表达式

由特定的字符组成,代表一个规则

1.校验数据格式是否合法

2.在一段文本中查找满足要求的内容

// 全为数字 长度在6~20 不以0开头
String data = "347197823"

data != null && data.matches("[1-9]\\d{5,19}") //[1-9]是限制了开头第一位数据,同时占了一位,、\d代表全是数字,{5,19}减去开头第一位,剩余长度应在5-19
书写规则

[...]是匹配单个字符!

用\d时,其实实际格式是\\d

对邮箱的匹配 \\w{2,}@\\w{2,20}\\(.\\w{2,10}){1,2}

查找信息

replaceAll替换

split分割

异常

自定义异常

我不懂为什么要自定义,报错之后直接去对应地方看不行吗?

异常的处理

1.throws

2.try-catch

直接throws Exception

哈哈,父类直接包括了所有异常哈哈,神金

尝试修复 好

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值