正则表达式 与 包装类

学习目的:
1.为什么需要学习正则
2.正则语法
3.正则在Java当中的使用

概念: 使用单个字符串来描述/匹配一系列符合某个语法规则的字符串
字符类:
[abc] 将字符进行归类,可以出现[]中的其中一个 对abc其中一个进行匹配
[^abc] 对不是abc的字符进行匹配
范围类:
[a-z] 表示代表a-z中的一个字符
表示所有的英文字母和数字 [a-zA-Z0-9]
预定义类:
\d == [0-9] 数字
\D == [^0-9] 非数字
空白字符:[ \t\n\x0B\f\r] == \s
[^ \t\n\x0B\f\r] == \S
[a-zA-Z0-9_] \w
[^a-zA-Z0-9] \W
任何字符(与行结束符可能匹配也可能不匹配)

边界字符
^:以XXX开头
$:以XXX结尾
\b:单词边界: 数字 字母 下划线 中文 的两边称为单词边界
\B:非单词边界 数字 字母 下划线 中文的里面称为非单词边界

量词
?:出现0次或者1次
+:出现1次或者多次
*:出现任意次
{n}:出现正好n次
{n,m}出现n-m次
{n,}出现至少n次
分组 ()
如何让Jack出现至少3次
(Jack){3,}

忽略分组:每一组能够分组,但是没有编号 ?:
或 |
Ja(ck|Love)Kitty
正则在Java当中的应用
在Java里面来学习正则表达式的目的主要就是使用正则表达式来处理字符串复杂的
1.查找 find Pattern 和 Matcher
2.替换replace replaceFirst replaceAll
全文检索,满足条件即可替换
3.匹配matches matches
完全匹配
4.分割split工作 split

为什么需要学习包装类?

1、如何判断一个字符是大写,小写还是数字字符?
c >= ‘a’ && c <= ‘z’
该判断是与字符相关,应该放在字符类里面 Character char
2、如何计算65的二进制,八进制,十六进制呢? – 那么27进制
该计算与整数有关,应该放在整数类里面 Integer Byte Short Long
有了包装类,我们就可以访问和数据类型相关的对象的更多的方法
基本数据类型是没有方法可以调用的

任何的数据类型都有一个class属性,它返回的是类文件
什么是包装类?
八大基本数据类型都对应着一个包装类类型
byte short int long float double char boolean
Byte Short Integer Long Float Double Character Boolean

掌握 Integer 和 Character,其他的一模一样
Integer是java.lang.Number 包下面的
任何 Number类下的子类都可以转换成其他的数值类型,但是可能会出现精度丢失

static int BYTES
用于表示二进制补码二进制形式的 int值的字节数。
static int MAX_VALUE
一个持有最大值一个 int可以有2 31 -1。
static int MIN_VALUE
的常量保持的最小值的 int可以具有,-2 31。
static int SIZE
用于表示二进制补码二进制形式的 int值的位数。
static 类 TYPE
类原始类型 int的 类实例。

Integer(int value)
构造一个新分配的 Integer对象,该对象表示指定的 int值。
Integer(String s)
构造一个新分配 Integer对象,表示 int由指示值 String参数。
NumberFormatException
异常名称: 数字格式化异常
产生原因: 字符串未满足数字的格式

成员方法
public int intValue() 拆箱,将Integer转化为整型
public static int parseInt(String s) 将字符串转换为int类型
public static String toString(int i) 将整型转换为字符串
public static Integer valueOf(int i) 将整型装换为Integer类型
public static Integer valueOf(String s) 将字符串转换为Integer类型

new Integer和Integer.valueOf()区别?
看源码:
public static Integer valueOf(int i) {
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i + (-IntegerCache.low)];
return new Integer(i);

实现String和int之间的相互转换

parse 解析 将字符串中的数据提取出来存储对应的实体类中
1.日期解析
2.xml解析
3.json解析
4.html解析

format 格式化
将实体类中的数据转换成字符串
JDK1.5之后引入的新特性
自动拆装箱: 保证基本数据类型和包装类类型之间相互运算

自动拆箱:自动将包装类类型转换成基本数据类型,本质依赖的方法 ii.intValue()
自动装箱:自动将基本数据类型转换成包装类类型,本质依赖的方法 Integer.valueOf(100)

Intrger类实现进制转换

进制转换的分类:
1.其他进制->十进制 按权展开
2.十进制->其他进制 取余法
3.X进制->Y进制 先将X进制转换成十进制,再将十进制转换成Y进制

快速转换法
4.二进制,八进制,十六进制快速转换法 分组法
5.十进制和二进制的快速转换法 8421码

计算只会两种方式
1.其他进制->十进制 按权展开
2.十进制->其他进制 取余法

十进制到其他进制
public static String toBinaryString(int i)
public static String toOctalString(int i)
public static String toHexString(int i)
public static String toString(int i,int radix)
其他进制到十进制
public static int parseInt(String s,int radix)

计算机只能够表示到36进制

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值