Java基础入门15:算法、正则表达式、异常

news2024/9/21 20:49:39

算法(选择排序、冒泡排序、二分查找)

选择排序

每轮选择当前位置,开始找出后面的较小值与该位置交换。

选择排序的关键:

确定总共需要选择几轮:数组的长度-1。

控制每轮从以前位置为基准,与后面元素选择几次。

冒泡排序

每次从数组中找出最大值放在数组的后面去。

实现冒泡排序的关键步骤分析:

确定总共需要做几轮:数组的长度-1。

当前位置大于后一个位置则交换数据。

package com.tichinajie.d1_aigorithm;

import java.util.Arrays;

public class Test1 {
    public static void main(String[] args) {
        //选择排序
        int[] arr = {12,14,23,11,21,5,2,8,9,29,19,10};

        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[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }

}



package com.tichinajie.d1_aigorithm;

import java.util.Arrays;

public class Test2 {
    public static void main(String[] args) {
        //冒泡排序
        int[] arr = {2,4,7,5,8,9,0,1};

        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}



package com.tichinajie.d1_aigorithm;

import java.util.Arrays;

public class Test3 {
    public static void main(String[] args) {
        //选择排序
        int[] arr = {12,14,23,11,21,5,2,8,9,29,19,10};
        //算法优化
        for (int i = 0; i < arr.length - 1; i++) {
            int minIndex = i;
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[minIndex] > arr[j]) {
                    minIndex = j;
                }
            }
            if (i != minIndex){
                int temp = arr[minIndex];
                arr[minIndex] = arr[i];
                arr[i] = temp;
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}



二分查找法

package com.tichinajie.d1_aigorithm;

import java.util.Arrays;

public class Test4 {
    public static void main(String[] args) {
        //二分查找法查找数组中的元素
        int[] arr = {12,13,15,36,57,99};
        System.out.println(binarySearch(arr, 13));

        System.out.println(Arrays.binarySearch(arr, 12));
    }
    public static int binarySearch(int[] arr,int data){
        int left = 0;
        int right = arr.length - 1;

        while (left <= right){
            int middle = (left+right)/2;
            if (data > arr[middle]){
                left = middle + 1;
            }else if (data < arr[middle]){
                right = middle - 1;
            }else {
                return middle;
            }
        }
        return -1;//特殊结果,代表没有找到数据,数组中不存在该数据
    }
}

正则表达式

正则表达式就是由一些特殊的字符组成,代表的是一个规则。

作用一:用来校验数据是否合法

作用二:在一段文本中查找满足要求的内容

package com.tichinajie.d2_regex;
/*
* 目标:体验一下使用正则表达式来校验数据格式的合法性。
需求:校验QQ号码是否正确,要求全部是数字,长度是(6-20)之间,不能以0开头。
* */
public class RegexTest1 {
    public static void main(String[] args) {
        System.out.println(checkQQ("242343456"));
        System.out.println(checkQQ("0482734234"));
        System.out.println(checkQQ(null));
        System.out.println(checkQQ("r3423rr565"));
        System.out.println(checkQQ("12345"));
        System.out.println(checkQQ("223423534556457567568676785745634523"));
        System.out.println("------------------------------------------------------------------------");
        System.out.println(checkQQ2("242343456"));
        System.out.println(checkQQ2("0482734234"));
        System.out.println(checkQQ2(null));
        System.out.println(checkQQ2("r3423rr565"));
        System.out.println(checkQQ2("12345"));
        System.out.println(checkQQ2("223423534556457567568676785745634523"));

    }
    //使用正则表达式
    public static boolean checkQQ2(String qq){
        return qq != null && qq.matches("[1-9]\\d{5,19}");
    }
    public static boolean checkQQ(String qq){
        //看是否满足基本条件
        if (qq ==null || qq.length() < 6 || qq.length() > 20 || qq.startsWith("0")){
            return false;
        }
        //判断是否有字母
        for (int i = 0; i < qq.length(); i++) {
            char ch = qq.charAt(i);
            if (ch < '0' || ch > '9'){
                return false;
            }
        }
        return true;
    }
}

正则表达式的书写规则

 判断字符串是否匹配正则表达式,匹配返回true,不匹配返回false。

正则表达式的是写规则:

字符类(只匹配单个字符)

预定义字符(只匹配单个字符)

数量词

package com.tichinajie.d2_regex;
//掌握正则表达式的书写规则
public class RegexTest2 {
    public static void main(String[] args) {
        //1、字符类(只能匹配单个字符)
        System.out.println("a".matches("[abc]")); //[abc]只能匹配a、b、c
        System.out.println("e".matches("[abcd]")); // false
        System.out.println("d".matches("[^abc]")); //[^abc]不能是abc
        System.out.println("a".matches("[^abc]")); // false

        System.out.println("b".matches("[a-zA-z]")); // [a-zA-Z] 只能是a-z A-Z的字符
        System.out.println("2".matches("[a-zA-Z]")); // false

        System.out.println("k".matches("a-z && [^bc]")); // :a到z,除了b和c
        System.out.println("b".matches("a-z && [^bc]")); // false
        System.out.println("ab".matches("[a-zA-Z0-9]"));//false 注意:以上带[内容]的规则都只能用于匹配单个字符

        //2、预定义字符(只能匹配单个字符).\d \D \s \s \w \W
        System.out.println("徐".matches("."));//.可以匹配任意字符
        System.out.println("徐徐".matches(".")); // false

        //\在Java中有特殊意义:\n换行\t代表一个缩进
        //如果在java中,希望\就是\必须转义
        System.out.println("\"");
        System.out.println("3".matches("\\d")); // \d: 0-9
        System.out.println("a".matches("\\d")); //false

        System.out.println(" ".matches("\\s")); //s:代表一个空白字符
        System.out.println("a".matches("\\s")); // false

        System.out.println("a".matches("\\S"));//\S:代表一个非空白字符
        System.out.println("".matches("\\S"));//false

        System.out.println("a".matches("\\w"));//\w:[a-zA-Z_0-9]
        System.out.println("_".matches("\\w"));//true
        System.out.println("".matches("\\w"));//false

        System.out.println("徐".matches("\\W"));//[^\w]不能是a-zA-Z_0-9
        System.out.println("a".matches("\\W"));//false

        System.out.println("23232".matches("\\d"));//false注意:以上预定义字符都只能匹配单个字符

        //3、数量词:? * + {n} {n,} {n,m}
        System.out.println("a".matches("\\w?"));//? 代表0次或1次
        System.out.println(" ".matches("\\w?"));//true
        System.out.println("abc".matches("\\w?"));//false

        System.out.println("abcI2".matches("\\w*"));//*代表0次或多次
        System.out.println("".matches("\\w*"));//true
        System.out.println("abc12".matches("\\w*"));//false

        System.out.println("a3c".matches("\\w{3}"));//{3}代表要正好是n次
        System.out.println("abcd".matches("\\w{3}"));//false
        System.out.println("abcd".matches("\\w{3,}"));//{3,}代表是>=3次
        System.out.println("ab".matches("\\w{3,}"));//false
        System.out.println("abcde徐".matches("\\w{3,}"));//false
        System.out.println("abc232d".matches("\\w{3,9}"));//{3,9}代表是  大于等于3次,小于等于9次

        //4、其他几个常用的符号:(?i) 忽略大小写、 或:|、分组:()
        System.out.println("----------------------------------------------");
        System.out.println("abc".matches("(?i)abc"));//true
        System.out.println("ABC".matches("(?i)abc"));//true
        System.out.println("aBc".matches("a((?i)b)c"));//true
        System.out.println("ABc".matches("a((?i)b)c"));//false

        //需求1:要求要么是3个小写字母,要么是3个数字。
        System.out.println("123".matches("\\d{3}|[a-z]{3}"));
        System.out.println("abc".matches("\\d{3}|[a-z]{3}"));
        System.out.println("aAc".matches("\\d{3}|[a-z]{3}"));

        //需求2:必须是“我爱“开头,中间可以是至少一个"编程“,最后至少是1个"666"
        System.out.println("我爱编程编程666666".matches("我爱(编程)+(666)+"));
        System.out.println("我爱编程编程6666666".matches("我爱(编程)+(666)+"));//false
    }
}

 正则表达式的应用

1、用于校验数据

package com.tichinajie.d2_regex;

import java.util.Scanner;

public class RegexTest3 {
    public static void main(String[] args) {
        //正则表达式的应用一,校验数据格式是否合法
        checkEmail();
    }
    public static void checkPhone(){
        Scanner sc = new Scanner(System.in);
        while (true){
            System.out.println("请您输入您的电话号码(手机I座机):");
             String phone = sc.nextLine();
            //18676769999  010-3424242424  0104644535
            if(phone.matches( "(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})")){
                System.out.println("您输入的号码格式正确~~~");
                break;
            }else {
                    System.out.println("您输入的号码格式不正确~~~");
            }
        }
    }
    public static void checkEmail(){
        while (true) {
            System.out.println("请您输入您的邮箱:");
            Scanner sc = new Scanner(System.in);
            String email = sc.nextLine();
            /**
            * dlei0009@163.com
            *25143242@qq.com
            *itheima@itcast.com.cn
            */
            if(email.matches("\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}")){
                System.out.println("您输入的邮箱格式正确~~~");
                break;
            }else{
                System.out.println("您输入的邮箱格式不正确~~~");
            }
        }
    }
}

2、用于查找信息

package com.tichinajie.d2_regex;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexTest4 {
    public static void main(String[] args) {
        //使用正则表达式
        method1();
    }
    //需求1:从以下内容中爬取出,手机,邮箱,座机、400电话等信息。
    public static void method1() {
        String data = "来黑马程序员学习Java,\n" +
                "电话:1866668888,18699997777\n" +
                "或者联系邮箱:boniu@itcast.cn,\n" +
                "座机电话:01036517895,010-98951256\n" +
                "邮箱:bozai@itcast.cn,\n" +
                "邮箱:dlei0009@163.com,\n" +
                "热线电话: 400-618-9090,400-618-4000,4006184000,4006189090";
        //1、定义爬取规则
        String regex = "(1[3-9]\\d{9})|(0\\d{2,7}-?[1-9]\\d{4,19})|\\w{2,}@\\w{2,20}(\\.\\w{2,10}){1,2}"
                + "|(400-?\\d{3,7}-?\\d{3,7})";
        //2、把正则表达式封装成一个Pattern对象
        Pattern pattern = Pattern.compile(regex);
        //3、通过pattern对象去获取查找内容的匹配器对象。
        Matcher matcher = pattern.matcher(data);
        //4、定义一个循环开始爬取信息
        while (matcher.find()) {
        String rs = matcher.group();//获取到了找到的内容了。
        System.out.println(rs);
        }
    }
}

3、用于搜索替换、分割内容

正则表达式用于搜索替换、分割内容,需要结合String提供的如下方法完成:

package com.tichinajie.d2_regex;

import java.util.Arrays;

/**
 *目标:掌握使用正则表达式做搜索替换,内容分割。
 */
public class RegexTest5 {
    public static void main(String[] args) {
        //1、public String replaceAll(String regex,String newStr):按照正则表达式匹配的内容进行替换
        //需求1:请把古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴,中间的非中文字符替换成"-"
        String s1="古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
        System.out.println(s1.replaceAll("\\w+","-"));

        //需求2(拓展):某语音系统,收到一个口吃的人说的“我我我喜欢编编编编编编编编编编编编程程程!”,需要优化成“我喜欢编程!"。
        String s2="我我我喜欢编编编编编编编编编编编编程程程";
        /**
         *(.)一组:.匹配任意字符的。
         *\\:为这个组声明一个组号:1号
         *+:声明必须是重复的字
         *$1可以去到第1组代表的那个重复的字
         */
        System.out.println(s2.replaceAll("(.)\\1+","$1"));

        //2、public String.[]split(String regex.):按照正则表达式匹配的内容进行分割字符串,反回一个字符串数组。
        //需求1:请把古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs.42425卡尔扎巴,中的人名获取出来。
        String s3="古力娜扎ai8888迪丽热巴999aa5566马尔扎哈fbbfsfs42425卡尔扎巴";
        String[] names = s3.split("\\w+");
        System.out.println(Arrays.toString(names));
    }
}

异常

异常的体系

Error:代表的系统级别错误(属于严重问题),也就是说系统一旦出现问题,Sun公司会把这些问题封装成Error对象给出来,说白了,Error是给sun公司自己用的,不是给我们程序员用的,因此我们开发人员不用管它。

Exception:叫异常,它代表的才是我们程序可能出现的问题,所以,我们程序员通常会用Exception以及它的孩子来封装程序出现的问题。

1、运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时出现的异常(如:数组索引越界异常)。

2、编译时异常:编译阶段就会出现错误提醒的(如:日期解析异常)。

抛出异常(throws)

在方法上使用throws:关键字,可以将方法内部出现的异常抛出去给调用者处理。

捕获异常(try...catch)
直接捕获程序出现的异常​​​​​​​

package com.tichinajie.d3_exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 目标:认识异常
* */
public class ExceptionTest1 {
    public static void main(String[] args) throws ParseException {
        // Integer.valueOf("abc");
//   int[] arr = {11, 22, 33};
//   System.out.println(arr[5]);
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse("2028-11-11 10:24");
      //  Date d = null;
//        try {
//            d = sdf.parse("2028-11-11 10:24");
//        } catch (ParseException e) {
//            throw new RuntimeException(e);
//        }
        System.out.println(d);
    }
}

自定义异常

Java无法为这个世界上全部的问题都提供异常类来代表,如果企业自己的某种问题,想通过异常来表示,以便用异常来管理该问题,那就需要自己来定义异常类了。

自定义异常的种类

package com.tichinajie.d3_exception;

//1、必须让这个类继承自RunTimeException,才能成为一个运行时异常类
public class AgeIllegalRuntimeException extends RuntimeException {
    public AgeIllegalRuntimeException() {
    }

    public AgeIllegalRuntimeException(String message) {
        super(message);
    }
}



package com.tichinajie.d3_exception;

//1、必须让这个类继承自RunTimeException,才能成为一个运行时异常类
public class AgeIllegalException extends RuntimeException {
    public AgeIllegalException() {
    }

    public AgeIllegalException(String message) {
        super(message);
    }
}




package com.tichinajie.d3_exception;
/*
* 目标:掌握自定义异常,异常的应用
* */
public class ExceptionTest2 {
    public static void main(String[] args) {
        //需求:保存一个合法的年龄
        try{
            saveAge(15) ;
            System.out.println("底层执行成功的!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("底层出现了bug!");
        }
        try{
            saveAge2(25);
            System.out.println("saveAge2底层执行是成功的!");
        } catch (AgeIllegalException e){
            e.printStackTrace();
            System.out.println("saveAge2底层执行是出现bug的!");
        }
    }
    public static void saveAge2(int age) throws AgeIllegalException{
        if(age > 0 && age < 150){
            System.out.println("年龄被成功保存:" + age);
        }  else {
            //用一个异常对象封装这个问题
            //throw抛出去这个异常对象
            //throws 用在方法上,抛出方法内部的异常
            throw new AgeIllegalException("/age is illegal, your age is " + age);
        }
    }
    public static void saveAge(int age){
        if(age > 0 && age < 150){
            System.out.println("年龄被成功保存:" + age);
        }  else {
        //用一个异常对象封装这个问题
        //throw抛出去这个异常对象
        throw new AgeIllegalRuntimeException("/age is illegal, your age is " + age);
        }
    }
}

异常的处理

开发中对于异常的常见处理方式:

​​​​​​​

package com.tichinajie.d3_exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 目标异常处理
* */
public class ExceptionTest3 {
    public static void main(String[] args) {
        try {
            test1();
        } catch (FileNotFoundException e) {
            System.out.println("您要找的文件不存在~~");
            throw new RuntimeException(e);//打印这个异常对象的信息,记录下来
        } catch (ParseException e) {
            System.out.println("您要解析的时间有问题~~");
            throw new RuntimeException(e);//打印这个异常对象的信息,记录下来
        }
    }
    private static void test1() throws FileNotFoundException, ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse("2028-11-11 10:24");
        System.out.println(d);
        test2();
    }

    public static void test2() throws FileNotFoundException {
        //读取文件的
        InputStream is = new FileInputStream("D:/meinv.png");
    }
}




 package com.tichinajie.d3_exception;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/*
* 目标异常处理
* */
public class ExceptionTest3_2 {
    public static void main(String[] args) {
        try {
            test1();
        } catch (Exception e) {
            System.out.println("您要找的文件不存在~~");
            e.printStackTrace();//打印这个异常对象的信息,记录下来
        }
    }
    private static void test1() throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss");
        Date d = sdf.parse("2028-11-11 10:24");
        System.out.println(d);
        test2();
    }

    public static void test2() throws Exception {
        //读取文件的
        InputStream is = new FileInputStream("D:/meinv.png");
    }
}




package com.tichinajie.d3_exception;

import java.util.Scanner;

public class ExceptionTest4 {
    public static void main(String[] args) {
        //需求:调用一个方法,让用户输入一个合适的价格返回为止
        while (true) {//尝试修复
            try {
                System.out.println(getMoney());
            } catch (Exception e) {
                System.out.println("请您输入合法的数字!!");
            }
        }
    }
    public static double getMoney(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入合适的价格:");
        double money = sc.nextDouble();
        if (money >= 0){
            return money;
        }else {
            System.out.println("你输入的价格不合适");
        }
        return money;
    }
}

(本章图片均来自于黑马程序员视频)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2042347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一招搞定异构联邦学习难题:FedKTL的超高效策略!

【联邦学习】在近年来的深度学习领域中备受关注&#xff0c;它通过在保证数据隐私的前提下&#xff0c;协同多个分散的设备或服务器进行模型训练。联邦学习技术能够在不集中数据的情况下&#xff0c;实现数据共享和模型优化&#xff0c;在医疗、金融和智能设备等领域取得了显著…

Linux|centos7|奇怪的知识|perf命令,系统运行瓶颈分析工具

前言&#xff1a; Linux perf 是 Linux 2.6 后内置于内核源码树中的性能剖析&#xff08;profiling&#xff09;工具,它基于事件采样&#xff0c;以性能事件为基础&#xff0c;针对 CPU 相关性能指标与操作系统相关性能指标进行性能剖析&#xff0c;可用于性能瓶颈查找与热点代…

http/sse/websocket 三大协议演化历史以及 sse协议下 node.js express 服务实现打字机案例 负载均衡下的广播实现机制

背景 自从2022年底chatgpt上线后&#xff0c;sse就进入了大众的视野&#xff0c;之前是谁知道这玩意是什么&#xff1f;但是打字机的效果看起来是真的很不错&#xff0c;一度吸引了很多人的趋之若鹜&#xff0c;当然了这个东西的确挺好用&#xff0c;而且实现很简单&#xff0…

Linux环境本地搭建开发工具箱It-Tools并实现公网环境远程使用

文章目录 前言1. 安装Docker2.本地安装部署it-tools3. it-tools工具箱功能—生成docker-compose文件4. 安装cpolar内网穿透5. 固定it-tools公网地址 前言 本篇文章&#xff0c;我们将以Docker方式将IT-Tools部署至本地Linux系统个人服务器&#xff0c;并且结合cpolar内网穿透工…

【无标题】mysql读写分离架构+MyCAT实现读写分离

1、读写分离的目的 数据库负载均衡&#xff1a; 当数据库请求增多时&#xff0c;单例数据库不能够满足业务 需求。需要进行数据库实例的扩容。多台数据库同时相 应请求。也就是说需要对数据库的请求&#xff0c;进行负载均衡 但是由于数据库服务特殊原因&#xff0c;数据库…

安卓用户专属福利:OfficeSuite中文高级版,让你的工作更轻松!

OfficeSuite – 世界顶级移动办公软件&#xff01;Google Play商店下载最多的办公软件应用&#xff0c;迄今为止&#xff0c;智能手机平台上&#xff0c;功能最强大、兼容性最好的移动Office办公套件。创建&#xff0c;查看和编辑Word&#xff0c;Excel和PowerPoint文档&#x…

mysql主从数据库(5.7版本)与python的交互及mycat

mysql数据库基本操作&#xff1a; [rootm ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 解压压缩包 [rootm ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootm ~]# cp -r mysql-5.7.44-linu…

Ubuntu 批量杀死进程

ps -ef|grep python|grep server|grep -v grep|cut -c 9-16|xargs kill -9这个命令序列是一个在Linux或类Unix系统中使用的脚本片段&#xff0c;用于批量终止&#xff08;强制杀死&#xff09;所有与特定条件&#xff08;这里是包含"python"和"wanghao"的&…

推荐浏览器爬虫插件:Instant Data Scraper 无需写一行代码

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

云计算29-------mysql主从数据库(5.7版本)与python的交互及mycat

mysql数据库基本操作&#xff1a; [rootm ~]# tar -xf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 解压压缩包 [rootm ~]# ls anaconda-ks.cfg mysql-5.7.44-linux-glibc2.12-x86_64 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz [rootm ~]# cp -r mysql-5.7.44-lin…

如何判断树上一个点是否在直径上

# 旅游规划 ## 题目描述 W市的交通规划出现了重大问题&#xff0c;市政府下定决心在全市各大交通路口安排疏导员来疏导密集的车流。但由于人员不足&#xff0c;W市市长决定只在最需要安排人员的路口安排人员。 具体来说&#xff0c;W市的交通网络十分简单&#xff0c;由n个…

【Android Git】Mac配置支持 Gitlab、Gitee和阿里云效多平台

前言 在开发过程中&#xff0c;会遇到多平台项目管理问题&#xff0c;需要进行配置支持&#xff0c;常用的平台有Gitlab、Gitee、阿里云效等&#xff0c;本篇文章记录下使用同一邮箱配置支持的过程。 说明 首先认识下id_ras,一个用于SSH&#xff08;安全外壳协议&#xff09;…

java判断字符串某字符是否为大写/小写/数字?

Character类提供了很多静态方法&#xff0c;用于处理Unicode字符&#xff0c;如下&#xff1a; 也可以将字符转化成小写字母或大写字母。运用如下&#xff1a; 1是数字返回true a不是大写返回false a是小写返回true a转化成大写字母后为A A转化成小写字母后为a

备战金三银四、金九银十、软件测试面试问答

1、问&#xff1a;你在测试中发现了一个bug&#xff0c;但是开发经理认为这不是一个bug&#xff0c;你应该怎样解决&#xff1f; 首先&#xff0c;将问题提交到缺陷管理库里面进行备案。 然后&#xff0c;要获取判断的依据和标准&#xff1a; 根据需求说明书、产品说明、设计…

压缩软件里的文件名编码

由于默认编码环境不同&#xff0c;打包时正常的文件和目录&#xff0c;在解包时就是乱码了。就拿winrar来说&#xff0c;windows中文版下&#xff0c;默认的编码是GBK 你将一堆文件打包给mac用户或者linux用户&#xff0c;那边的默认编码是UTF8&#xff0c;解压出来文件内容没有…

前端进阶——浏览器篇

浏览器如何工作&#xff08;一&#xff09;进程架构 浏览器的工作过程复杂而高效&#xff0c;其核心在于其进程架构的设计。以下是对浏览器进程架构的详细解析&#xff1a; 一、浏览器的主要进程 现代浏览器大多采用多进程多线程的架构&#xff0c;以Chrome浏览器为例&…

你会读财务报表吗?快来看看如何正确解读

在现代商业的复杂网络中&#xff0c;每一家公司都像是一个精密运行的钟表&#xff0c;其运转的顺畅程度取决于各个齿轮的完美契合与精准配合。而财务报表&#xff0c;就像是是这钟表的指针&#xff0c;实时展现着公司运转的状态和效率&#xff0c;帮助管理者把握全局&#xff0…

用python实现视频中插入各种形式的文本,包括普通文本、数学公式、项目符号列表和标题

tex_mobject 模块提供了一系列可以使用 LaTeX 渲染文本的类。通过这个模块&#xff0c;你能够在视频中插入各种形式的文本&#xff0c;包括普通文本、数学公式、项目符号列表和标题等。具体类的功能如下&#xff1a; BulletedList&#xff1a;用于创建带项目符号的列表。MathT…

关于utf-8编码规范练习题

目录 一、代码内容 二、MySQL内容 三、代码遇到的问题 遭遇&#xff1a; 解决思路&#xff1a; 四、出现问题1 断点调试&#xff0c;分析问题 发现问题点&#xff1a; 问题解决 五、出现问题2 原因&#xff1a; 举例&#xff1a; 举例总结&#xff1a; 一、代码内容…

数学建模--浅谈多波束测线问题

目录 1.问题说明 2.问题分析 3.代码分析 1.问题说明 这个是国赛的真题&#xff0c;我们这个里面只是浅谈&#xff0c;就是对于这个里面运用的过程仿真的思路进行说明&#xff0c;这个探测的波束问题实际上也是一个简单的过程仿真问题&#xff0c;也是需要去进行作图的&#…