Java基础五:数组、正则表达式、异常处理

一、创建数组

# 数组声明
dataType[] arrayRefVar;   # 首选的方法
或
dataType arrayRefVar[];   # 效果相同,但不是首选方法。风格是来自 C/C++ 语言
# 方法一、先声明后再创建数组
arrayRefVar = new dataType[arraySize];

# 方法二、同时声明和创建
dataType[] arrayRefVar = new dataType[arraySize];

# 方法三、声明时通过赋值来创建
dataType[] arrayRefVar = {value0, value1, ..., valuek};

数据操作

1.遍历、for 或for..each

2.数组作为参数、返回值 public static int[] reverse(int[] list)

3.多维数组 String[][] str = new String[3][4];

Java基础五:数组、正则表达式、异常处理

二、正则表达式

java.util.regex 包主要包括以下三个类:

  • Pattern 类:pattern 对象是一个正则表达式的编译表示。Pattern 类没有公共构造方法。要创建一个 Pattern 对象,你必须首先调用其公共静态编译方法,它返回一个 Pattern 对象。该方法接受一个正则表达式作为它的第一个参数。
  • Matcher 类:Matcher 对象是对输入字符串进行解释和匹配操作的引擎。与Pattern 类一样,Matcher 也没有公共构造方法。你需要调用 Pattern 对象的 matcher 方法来获得一个 Matcher 对象。
  • PatternSyntaxException:PatternSyntaxException 是一个非强制异常类,它表示一个正则表达式模式中的语法错误。

可以通过调用 matcher 对象的 groupCount 方法来查看表达式有多少个分组

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

# 按指定模式在字符串查找
String line = "This order was placed for QT3000! OK?";
String pattern = "(\\D*)(\\d+)(.*)";
boolean isMatch = Pattern.matches(pattern, content);    #匹配一个Pattern.matches()

# 创建 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.lang.Exception 类继承的子类。

Java基础五:数组、正则表达式、异常处理
try{
  // 程序代码
}catch(异常类型1 异常的变量名1){   //异常的变量名.可以查看方法,比如异常变量名.toString()可以打印异常信息
  // throws/throw关键字 抛出异常
}catch(异常类型2 异常的变量名2){
  // 程序代码
}finally{
  // 程序代码
}

如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。

Java基础五:数组、正则表达式、异常处理

异常实例:

public class ExcepTest{
  public static void main(String args[]){
    int a[] = new int[2];
    try{
       System.out.println("Access element three :" + a[3]);
    }catch(ArrayIndexOutOfBoundsException e){
       System.out.println("Exception thrown  :" + e);
    }
    finally{
       a[0] = 6;
       System.out.println("First element value: " +a[0]);
       System.out.println("The finally statement is executed");
    }
  }
}
Java基础五:数组、正则表达式、异常处理

try-with-resources

DK7 之后,Java 新增的 try-with-resource 语法糖来打开资源,并且可以在语句执行完毕后确保每个资源都被自动关闭 。

JDK7 之前所有被打开的系统资源,比如流、文件或者 Socket 连接等,都需要被开发者手动关闭,否则将会造成资源泄露。

try (resource declaration) {
  // 使用的资源
} catch (ExceptionType e1) {
  // 异常块
}

处理多个资源:

import java.io.*;
import java.util.*;
class RunoobTest {
    public static void main(String[] args) throws IOException{
        try (Scanner scanner = new Scanner(new File("testRead.txt"));
            PrintWriter writer = new PrintWriter(new File("testWrite.txt"))) {
            while (scanner.hasNext()) {
                writer.print(scanner.nextLine());
            }
        }
    }
}

声明自定义异常

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。

  • 所有异常都必须是 Throwable 的子类。
  • 如果希望写一个检查性异常类,则需要继承 Exception 类。
  • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

可以像下面这样定义自己的异常类:

class MyException extends Exception{ }

实例:

// 文件名InsufficientFundsException.java
import java.io.*;
 
//自定义异常类,继承Exception类
public class InsufficientFundsException extends Exception
{
  //此处的amount用来储存当出现异常(取出钱多于余额时)所缺乏的钱
  private double amount;
  public InsufficientFundsException(double amount)
  {
    this.amount = amount;
  } 
  public double getAmount()
  {
    return amount;
  }
}

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/3881.html

(0)
上一篇 2022年10月15日 下午8:09
下一篇 2022年10月16日 下午4:22

相关推荐

  • TestNG框架教程一:新手入门

    一、安装JDK和eclipse编辑器 JDK安装,本站教程地址:https://www.sankumao.com/2426.html eclipse安装,下载地址:https://…

    2022年10月18日
  • java中impl作用,为什么有些包有impl?

    今天在安装了httpclient包,因为不知道get请求在哪个包里,所以查看分析了一下包的结构。发现里面有类似org.apache.http.impl.conn的包和其它包,区别就…

    2022年10月22日
  • TestNG框架教程四:testng.xml文件详解

    TestNG通过设置testng.xml文件能做以下事情 1)创建来源不同包、类、方法的测试套件 2)包括一些选项,例如失败的用例可以重跑。 3)支持使用正则表达式 4)运行把外部…

    2022年10月20日
  • Java+Selenium教程三:浏览器操作、页面交互、鼠标操作

    一、浏览器操作 1.导航 driver.navigate() driver.get(url); 请求一个页面,不支持前进和后退切换driver.navigate().to(url)…

    2022年10月21日
  • httpclient教程一:环境搭建

    一、环境准备 将使用eclipse和maven完成本次接口请求实现,以下内容,将默认读者已完成环境准备,包括但不限于JDK、maven、IDEA,并熟练掌握他们的使用方法,如若有不…

    2022年10月22日
  • Java+Selenium教程二:定位元素、元素信息获取、元素操作

    一、元素定位 查找元素的方式跟Python的selenium一致。 二、元素信息获取 使用x.get来联想出,哈哈 三、元素判断 x.is 四、元素操作 clear(); 如果该元…

    2022年10月21日
  • eclipse创建maven项目教程

    Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理,是一个自动化构建工具。在最新的 Eclipse 中自带了 Maven,我们打开,Windows->P…

    2022年10月19日
  • Java+Selenium教程一:环境搭建

    一、谷歌浏览器驱动 1、谷歌各版本下载http://www.chromedownloads.net/chrome64win/ 2、谷歌驱动下载http://npm.taobao.o…

    2022年10月21日
  • Java基础语法

    一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作。 类、对象、方法和实例变量 第一个Java程序 下面看一个简单的 Java 程序,它将输出字…

    2022年10月15日
  • TestNG框架教程三:参数化与数据驱动

    一、@Parameters传参 Parameters一般用于比较简单的参数,只能一个参数一个值,不能多值或集合。 1.在testng.xml文件中定义参数列表 2.Paramete…

    2022年10月19日