一、创建数组
# 数组声明
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.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.lang.Exception 类继承的子类。
try{
// 程序代码
}catch(异常类型1 异常的变量名1){ //异常的变量名.可以查看方法,比如异常变量名.toString()可以打印异常信息
// throws/throw关键字 抛出异常
}catch(异常类型2 异常的变量名2){
// 程序代码
}finally{
// 程序代码
}
如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。
异常实例:
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");
}
}
}
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;
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END