【Java回顾】Day2 正则表达式----异常处理

参考资料:菜鸟教程
https://www.runoob.com/java/java-exceptions.html

正则表达式 有一部分没看完

  • 介绍
    • 字符串的模式
    • 搜索、编辑或处理文本
    • java.util.regex包,包含了pattern和mathcer类,用于处理正则表达式的匹配操作。
  • 捕获组
    • 把多个字符当一个单独单元进行处理,堆括号内的字符分组来创建。从左到有看左括号来编号分组
    • (A(B©))
      • ((A)(B)©)
      • (A)
      • (B©)
      • ©
  • import java.util.regex.Matcher;//查找,匹配,替换
    import java.util.regex.Pattern;//编译正则表达式
    public class RegexMatches
    {public static void main( String[] args ){// 按指定模式在字符串查找String line = "This order was placed for QT3000! OK?";String pattern = "(\\D*)(\\d+)(.*)";//(\D*)匹配0或多个非数字字符;(\d+)匹配1或多个数字字符;(.*)匹配0或多个任意字符// 创建 Pattern 对象,编译正则表达式Pattern r = Pattern.compile(pattern);// 现在创建 matcher 对象Matcher m = r.matcher(line);//if (m.find( )) {//查找下一个匹配项System.out.println("Found value: " + m.group(0) );//整个捕获System.out.println("Found value: " + m.group(1) );System.out.println("Found value: " + m.group(2) );System.out.println("Found value: " + m.group(3) );} else {System.out.println("NO MATCH");}}
    }
  • JAVA转义语法
    • Java 的正则表达式中,两个 \ 代表其他语言中的一个 ****, \\d
  • Matcher类的方法

Java 方法

  • System.out.println()

    • println() 方法
    • System 系统类
    • out 标准输出对象
  • 命名:以小写字母为首,后面的单词则用大写字母开头写,不使用连接符

  • 组成

    修饰符 返回值类型 方法名(参数类型 参数名){...方法体...return 返回值;
    }
    
  • 在一些其它语言中方法指过程和函数。一个返回非void类型返回值的方法称为函数;一个返回void类型返回值的方法叫做过程。

  • 方法签名:返回类型、方法名和参数列表。方法重载,例如int方法换为double方法

  • 变量作用域

    • 方法内的参数是一个局部变量
  • 构造方法(Constructor)

    • 创建类的对象的特殊方法,当使用new,构造方法会自动调用。
    • 方法名与类名相同
    • 没有返回类型,也没有void
    • 可以重载
    • 用于在在创建对象时初始化对象的状态
  • 可变参数,可以指定不定量的参数,必须是最后一个参数。

    • typeName… parameterName

Java构造方法

  • 作用

    • 初始化对象的属性
    • 保证对象初始化的完整性
  • 特点

    • 与类名相同
    • 没有返回类型 也没有void
    • 自动调用
    • 不能直接调用 new
    • 支持重载
    • 默认构造方法
    • this关键字使用
    • 不能被继承,但可以被调用
    • 对象初始化保障
  • 构造方法的类型

    • 无参构造方法
      • 默认 public Person(){}
    • 有参构造方法
      • 在创建对象时为属性赋值
      • public class Person {String name;int age;public Person(String name, int age) {this.name = name;this.age = age;}
        }
        
      • Person p = new Person(“Alice”, 25);
  • 构造方法的重载

    • 在同一个类中定义多个构造方法,只要参数列表不同即可
  • 构造方法中的this关键字

    • 引用当前对象的属性和方法

    • 调用另一个构造方法

      • 使用 this() 调用当前类的其他构造方法

      public Person(String name) {
      this(name, 0); // 调用另一个双参数的构造方法
      }

      public Person(String name, int age) {
      this.name = name;
      this.age = age;
      }

Java流(Stream)、文件(File)、IO

  • 允许程序与外部数据(文件、网络、系统输入等)进行交互
  • 核心包:java.io 处理数据流、文件读写、序列化以及数据格式化的工具
  • 输入流从一个源读取数据,输出流标识向一个目标写数据

步骤

  • 读取控制台输入
    • 输入由System.in完成

    • 获得一个绑定到控制台的字符流

      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      • System.in 输入流
      • InputStreamReader(System.in) 将字节流转换为字符流
      • BufferedReader 缓冲字符输入流,它通过缓冲区提高了读取效率
  • 从控制台读取多字符输入
    • int read( ) throws IOException
    • 每次调用 read() 方法,它从输入流读取一个字符并把该字符作为整数值返回。 当流结束的时候返回 -1。该方法抛出 IOException
  • 从控制台读取字符串
    • BufferedReader 的 readLine() 方法
    • String readLine( ) throws IOException
  • 控制台输出
    • print()
    • println()
    • 由类PrintStream定义,其继承了OutputStream类,并且实现了方法write()。写操作。System.out是该类对象的一个引用。
    • void write(int byteval) //将 byteval 的低八位字节写到流中
  • 读写文件
    • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
    • 字节流(处理二进制数据,文本、图像、视频等)
    • 字符流(处理文本数据)
    • 辅助类(其他重要类)辅助类提供对文件、目录以及随机文件访问的支持。

两个重要流

  • FileInputStream
    • 从文件读取数据
    • InputStream f=new FileInputStream(“C:/java/hello”)
    • File f = new File(“C:/java/hello”);
      InputStream in = new FileInputStream(f);
  • FileOutputStream
    • 创建一个文件并向文件中写数据,如果不存在就创建该文件
    • OutputStream f=new FileOutputStream(“C:/java/hello”)
    • File f = new File(“C:/java/hello”);
      OutputStream fOut = new FileOutputStream(f);

Java的目录

  • File类创建文件夹

    • mkdir() 创建文件夹,成功则返回true,失败则返回false
    • mkdirs() 创建文件夹和它的所有父文件夹
  • 读取目录

    • if(f1.isDirectory()) 如果是目录,返回True
    • 提取它包含的文件和文件夹的列表
    • String s[] = f1.list();
  • 删除目录或文件

    • java.io.File.delete()

Java Scanner 类

  • java.util.Scanner 获取用户的输入
  • Scanner s=new Scanner(System.in);
  • 获取输入的字符串:next() nextLine()
    • next() 和nextLine()区别

      • next() 读到有效字符后才可以结束输入;不能得到带有空格的字符串;对输入有效字符之前的空白,next()自动去掉空格;输入有效后将后面的空格作为分隔符或者结束符
      • nextLine() 以Enter为结束符,返回的是enter之前的所有字符;可以获得空白
  • 判断是否还有输入的数据,hasNext和hasNextLine

Java异常处理

  • 异常是程序中的一些错误,但并不是所有的错误都是异常。
  • 异常发生的原因|用户、程序、物理错误
    • 用户输入了非法数据。
    • 要打开的文件不存在。
    • 网络通信时连接中断,或者JVM内存溢出。

三种异常

  • 检查性异常,用户错误或问题引起的异常,异常在编译时强制要求程序员处理。
    • try{
      //可能会抛出异常的代码
      }catch(IOException e){
      //处理异常的代码
      }
  • public void readFile() throws IOException{
    //可能会抛出IOException
    }
    
  • 运行时异常 在编译时不强制要求处理,由程序中的错误引起的,例如NullPointerExcepton、ArrayIndexOut、OfBoundsException等
    • try{
      //可能会抛出异常的代码
      }catch(NullPointerException e){
      //处理异常的代码
      }
      
  • 错误:错误不是异常,而是脱离程序员控制的问题,错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,他们在编译也检查不到的。

关键字和类【支持异常处理】

  • try 包裹可能会抛出异常的代码块。
  • catch 捕获异常并处理异常的代码块。
  • finally 包含无论是否发生异常都需要执行的代码块
  • throw 手动抛出异常
  • throws 在方法声明中指定方法可能抛出的异常。
  • Exception 所以异常类的父类,提供一些方法来获取异常信息,如getMessage() printStackTrace()等。

Exception类的层次

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 从java.lang.Exception类继承的子类。
  • Error 用来指示运行时环境发生的错误。JAVA程序中,通常不捕获错误。

JAVA内置异常类

JAVA异常方法

略,有需要就查表

捕获异常

  • try和catch关键字可以捕获异常,称为保护代码
  • try{
    //程序代码
    }catch(ExceptionName e1)
    {
    //catch块
    }
    

多重捕获块 1个try多个catch

  • 一个try代码块后面跟随多个catch代码块的情况,匹配不同的错误类型
  • try{// 程序代码
    }catch(异常类型1 异常的变量名1){// 程序代码
    }catch(异常类型2 异常的变量名2){// 程序代码
    }catch(异常类型3 异常的变量名3){// 程序代码
    }
    

throws/throw关键字

  • throw 在代码中抛出异常
  • throws 在方法声明中指定该方法可能抛出的异常。当方法内部抛出指定类型的异常时,会处理异常。
  • 一个方法可以声明抛出多个异常,多个异常之间用逗号隔开。

finally关键字

  • 无论是否发生异常,finally代码块中的代码总会被执行。在finally代码块中,可以运行清理类型等收尾善后性质的语句。
  • try{// 程序代码
    }catch(异常类型1 异常的变量名1){// 程序代码
    }catch(异常类型2 异常的变量名2){// 程序代码
    }finally{// 程序代码
    }
    
  • catch不能独立于try存在,try也不能独立使用。

try-with-resources

  • 自动管理资源,确保资源在使用后能够及时关闭,避免资源泄露。
  • 自动关闭在try块中声明的资源,无需显式地在finally块中关闭。
  • try (resource declaration) {// 使用的资源
    } catch (ExceptionType e1) {// 异常块
    }
    

声明自定义异常

  • 必须是Throwable的子类
  • 检查性异常类,Exception类
  • 运行时异常类,RuntimeException类
  • class MyException extends Exception{
    }

通用异常

  • JVM(Java虚拟机)异常:JVM抛出的异常或错误
  • 程序级异常:由程序或API程序抛出的异常

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

招银网路Java后端一面,难度有点大!

这是一位武汉理工大学同学的招银网络一面面经,同样附带超详细的参考答案。大家可以用来查漏补缺,针对性地补短板。 招银网络一面还是比较简单的,基本都是一些比较重要且高频的常规八股,项目问的不多。到了二面的时候, 会开始主要考察你的项目。 1、自我介绍 自我介绍一般…

xadmin后台首页增加一个导入数据按钮

xadmin后台首页增加一个导入数据按钮 效果 流程 1、在添加小组件中添加一个html页面 2、写入html代码 3、在urls.py添加导入数据路由 4、在views.py中添加响应函数html代码 <!DOCTYPE html> <html lang

arcgis模版空库怎么用(一)

这里以某个项目的数据为例&#xff1a; 可以看到&#xff0c;属性表中全部只有列标题&#xff0c;无数据内容 可能有些人会认为空库是用来往里面加入信息的&#xff0c;其实不是&#xff0c;正确的用法如下&#xff1a; 一、下图是我演示用的数据&#xff0c;我们可以看到其中…

GJB系统设计说明模板

GJB系统设计说明模板及详解 1 范围 1.1 标识 1.2 系统概述 1.3 文档概述 2 引用文档 GJB XXX XXX XXX&#xff1b; XXX XXX。 前2章通用不再赘述 3 系统级设计决策 系统设计决策的目的:对系统规格说明中的关键需求(包括功能、质量属性和设计约束)进行分析,得到系统级概念性架构…

某小程序sign签名参数逆向分析

文章目录 1. 写在前面2. 接口分析3. 分析还原 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

2000-2020年各省财政一般预算支出面板数据

2000-2020年各省财政一般预算支出面板数据 1、时间&#xff1a;2000-2020年 2、来源&#xff1a;国家统计局 3、指标&#xff1a;年份、省份、地方财政一般预算支出 4、范围&#xff1a;31省 指标解释&#xff1a;地方财政一般预算支出‌是指地方ZF根据预算安排&#xff0…

[羊城杯 2024]1z_misc

得到FL4G.zip和天机不可泄露.txt文件&#xff0c;其中压缩包需要解压密码&#xff1a; 二十八星宿&#xff1a; 东方苍龙七宿&#xff1a;角、亢、氐、房、心、尾、箕 南方朱雀七宿&#xff1a;鬼、井、柳、星、张、翼、轸 西方白虎七宿&#xff1a;奎、娄、胃、昴、毕、觜、…

右值引用全面剖析

为什么要有右值引用&#xff0c;右值引用出现前程序员们的困境&#xff1a; 在右值引用出现以前&#xff0c;想要把一块内存空间里的内容放到另一块内存空间&#xff0c;只能再开辟一块内存&#xff0c;然后将原来内存里的内容复制到新开辟的内存里&#xff0c;然后再把原来的…

mac下载Homebrew安装nvm

通过Homebrew安装 - 国内下载地址 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"安装nvm brew install nvm 配置nvm环境变量 export NVM_DIR“$HOME/.nvm” [ -s “/usr/local/opt/nvm/nvm.sh” ] && . “/usr/…

解决chatgpt(mac app登陆)出现报错:获取您的 SSO 信息时出错

由于我们是app登陆的&#xff0c;不能直接修改网站的链接&#xff0c;将 URL 的域名部分从 auth.openai.com 变更为 auth0.openai.com&#xff0c;然后加载新的地址&#xff0c;这时候应该就可以正常登录或注册了。 所以我们使用邮箱先载入auth0的地址&#xff0c;再更改自己的…

C#编写的盘符图标修改器 - 开源研究系列文章

这天在网上遇到一个Windows的盘符图标修改软件&#xff0c;但是它那个是.net framework 2.0的&#xff0c;所以就将其改成4.8.1的了&#xff0c;用于Windows 11等默认不安装2.0库的操作系统里使用。 1、 项目目录&#xff1b; 2、 源码介绍&#xff1b; 它直接进行注册表的修改…

【第二部分--Python之基础】03 容器类型的数据

Python内置的数据类型如序列&#xff08;列表、元组等&#xff09;、集合和字典等可以容纳多项数据&#xff0c;我们称它们为容器类型的数据。 序列 序列&#xff08;sequence&#xff09;是一种可迭代的、元素有序的容器类型的数据。 序列包括列表&#xff08;list&#xff…

HTML5实现好看的二十四节气网页源码

HTML5实现好看的新年春节元旦网站源码 前言一、设计来源1.1 主界面1.2 关于我们界面1.3 春季节气界面1.4 夏季节气界面1.5 秋季节气界面1.6 冬季节气界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载结束语 HTML5实现好看的二十四节气网页源码&#xff0c;春季节气&#xf…

走进深圳华为总部参观研学

在这个科技日新月异的时代&#xff0c;每一次与行业标杆企业领先者对话&#xff0c;都是开眼界的好时机。华研标杆游学高老师组织了一场企业家参访团体考察&#xff0c;带大家去到深圳华为总部研学&#xff0c;亲身感受科技巨头的风采&#xff0c;一起探讨未来的发展。 第一站-…

【unity错误】Unity 6 LTS 打开就报错Assertion failed on expressionxxx?

unity6发布已经有一段时间了&#xff0c;如果目前你已经使用了unity6进行项目开发&#xff0c;可能打开会发现如下报错 Assertion failed on expression: ‘!(o->TestHideFlag(Object::kDontSaveInEditor) && (options & kAllowDontSaveObjectsToBePersistent) …

集线器,交换机,路由器,mac地址和ip地址知识记录总结

一篇很不错的视频简介 基本功能 从使用方面来说&#xff0c;都是为了网络传输的标识&#xff0c;和机器确定访问对象 集线器、交换机和路由器 常听到路由器和集线器&#xff0c;下面是区别&#xff1a; 集线器 集线器&#xff1a;一个简单的物理扩展接口数量的物理硬件。…

【ArcGISPro/GeoScenePro】检查并处理高程数据

数据 https://arcgis.com/sharing/rest/content/items/535efce0e3a04c8790ed7cc7ea96d02d/data 数字高程模型 (DEM) 是一种栅格,可显示地面或地形的高程。 数字表面模型 (DSM) 是另一种高程栅格,可显示表面的高度,例如建筑物或树冠的顶部。 您需要准备 DEM 和 DSM 以供分析…

《计算机组成及汇编语言原理》阅读笔记:p177-p177

《计算机组成及汇编语言原理》学习第 13 天&#xff0c;p177-p177 总结&#xff0c;总计 1 页。 一、技术总结 1.real mode A programming model where the program has access to the entire capability of the machine, bypassing security and memory management. Useful…

珞珈一号夜光遥感数据地理配准,栅格数据地理配准

目录 一、夜光数据下载&#xff1a; 二、夜光遥感数据地理配准 三、计算夜光数据值 四、辐射定标 五、以表格显示分区统计 五、结果验证 夜光数据位置和路网位置不匹配&#xff0c;虽然都是WGS84坐标系&#xff0c;不匹配&#xff01;&#xff01;&#xff01;不要看到就直接…

python学习笔记—12—

1. 布尔类型 (1) 定义 (2) 比较运算符 (3) 代码演示 1. 手动定义 bool_1 True bool_2 False print(f"bool_1的内容是&#xff1a;{bool_1}, 类型是&#xff1a;{type(bool_1)}") print(f"bool_2的内容是&#xff1a;{bool_2}, 类型是&#xff1a;{type(bool…