2020-12-31

学习小结

工具实用类

a) java.util.Arrays
实用类Arrays: 完成各种对数组的操作,如排序、查找、复制元素、填充元素等。
b) 数字格式化: java.text.NumberFormat和DecimalFormat
i. java.text.NumberFormat和DecimalFormate类。NumberFormat 是所有数值格式的抽象基类。此类提供格式化和解析数值的接口。NumberFormat 还提供了一些方法来确定哪些语言环境具有数值格式,以及它们的名称是什么。
ii. 对数值进行格式化使用:String formate(number),Number parse(String)方法。
iii. 具体参看:
在这里插入图片描述
public static void main(String[] args) {
//创建一个数字格式对象,会对小数自动四会五入
DecimalFormat format = new DecimalFormat("#,##0.00");
//设置舍入模式
format.setRoundingMode(RoundingMode.HALF_UP);
//3,703.7271
System.out.println(“数字格式化:” + format.format(3703.7271));

c) java.math.BigDecimal和java.math.BigInteger
大数值数据(例如精度要求较高时)的运算时可使用java.math.BigDecimal和java.math.BigInteger类。
下表是枚举类型:java.math.RoundingMode定义的的每种舍入模式:

在这里插入图片描述
public static void main(String[] args) {
// 大数值任意精度的数学运算
//1234.31 / 3.132 结果保留3位小数
BigDecimal decimal = new BigDecimal(“6789.7777”);

BigDecimal divisor = new BigDecimal(33333.123456);

//BigDecimal resultDecimal = decimal.divide(divisor, RoundingMode.HALF_UP);
BigDecimal resultDecimal = decimal.divide(divisor, BigDecimal.ROUND_HALF_UP);

//默认结果的小数位取决除数的小数位数
System.out.println(“默认保留小数位:” + resultDecimal);

//设置结果小位数(精度)
resultDecimal = resultDecimal.setScale(3, RoundingMode.HALF_UP);

double result = resultDecimal.doubleValue();

System.out.println(“保留3位小数:” + result);
}
d) 正则表达式:java.util.regex.Pattern
什么是正则表达式:
正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。
正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

参考API java.util.regex.Pattern类的说明。
i. 常用方法:

  1. Pattern compile(String regex):将给定的正则表达式编译到模式中。
    Pattern p = Pattern.compile(“a*b”); //指定匹配模式
    Matcher m = p.matcher(“aaaaab”); //指定需要与模式匹配的字符串
    boolean b = m.matches(); //指定的字符串是否与模式匹配
    // \{表示对花括号转义
    Pattern pattern = Pattern.compile("#\{\w+\}");

  2. Matcher matcher(CharSequence input):创建匹配给定输入与此模式的匹配器。

  3. boolean matches(String regex, CharSequence input):编译给定正则表达式并尝试将给定输入与其匹配。

ii. 正则表达式模式符号:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例如:

  1. ((19[7-9]\d)|(20[0-9]\d))可以匹配: 1970~2099年,也可以写成:
    ((19[7-9]\d{1})|(20[0-9]\d{1}))
  2. [a-zA-Z]{1, 5}:表示字母可出现1-5个字母
    在正则表式中()表示分组, \1在本正则表达式中表示向后引用组,$1表示引用组
    示例:
    // ()在正则表达式表示分组;(.)把每一个字符看成一个组
    // \1 在正则表达式中表示向后引用
    // (.)\1+表示后面的1个或多个字符与分组中的字符相同
    // $1表示引用分组字符
    // 字符的replaceAll() 和 split()方法的参数实际是正则表达式
    String string = s.replaceAll("(.)\1+", “$1”);

String[] strings = s.split("\.");
iii. 常用的正则表达式
4. 匹配中文字符:[\u4e00-\u9fa5]
5. 匹配双字节字符(包括汉字在内):[^\x00-\xff]
6. 匹配空白行:\n\s*\r
7. 匹配Email地址:[\w!# %&'*+/=?^_`{|}~-]+(?:\.[\w!# %&’+/=?^_`{|}~-]+)@(?:\w?.)+\w?
8. 匹配网址URL:[a-zA-z]+://[^\s]*
9. 匹配国内电话号码:\d{3}-\d{8}|\d{4}-\d{7,8} 0898-88888888,
10. 匹配腾讯QQ号:[1-9] [0-9]{4,}
11. 匹配中国邮政编码:[1-9]\d{5}(?!\d)
12. 匹配18位身份证号:^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$
13. 匹配(年-月-日)格式日期:([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8])))
14. 匹配正整数:1\d*$
15. 匹配负整数:^-[1-9]\d*$
16. 匹配整数:^-?[1-9]\d*$
17. 匹配非负整数(正整数 + 0):2\d*|0$
18. 匹配非正整数(负整数 + 0):^-[1-9]\d*|0$
19. 匹配正浮点数:3\d*.\d*|0.\d*[1-9]\d*$
20. 匹配负浮点数:^-[1-9]\d*.\d*|-0.\d*[1-9]\d*$
21. 匹配重复字母:(.)\1+
示例:
//一个正则表达式,可匹配由字母abc,组成的两个字母
String regex = “[abc]{2}”;

//编译一个正则表达式字符串为模式对象:Pattern.compile(“正则表达式”)。用于检查输入的字符串是否满足此模式
Pattern p = Pattern.compile(“a*b”);
// 检查输入的字符串是否满足模式
Matcher m = p.matcher(“aaaaab”);
boolean b = m.matches();
System.out.println(b);

//使用静态方法 matches()直接测试输入字符串是否满足模式
if (Pattern.matches("[A-Z]{3}-\d{3}",“XAN-123”)) {
System.out.println(“XAN-123是合法的字符串格式”);
}

e) java.lang.System

  1. arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
    src: 源数组
    srcPos: 开始复制元素的下标
    dest: 复制到的目标数组
    destPos:复制过来的元素从该下标开始放入到目标数组中
    length:复制多少个元素
  2. getProperties() : 得到系统属性
  3. getEvn() : 得到系统环境属性

f) java.lang.Runtime
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
方法:

  1. getRuntime()
  2. exec(“命令|外部程序”);
    如:exec(“C:\Windows\System32\notepad.exe”);
    打开浏览器:exec(“C:\Program Files\Internet Explorer\iexplore.exe”);

  1. 1-9 ↩︎

  2. 1-9 ↩︎

  3. 1-9 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值