JAVA总结 DAY013 1030

DAY013

一、StringBuilder

1.什么是StringBuilder
1、StringBuilder是一个可变的字符序列,因为在类中提供了修改私有成员变量的方法
常用的方法是append和insert,就是在StringBuilder对象本身上,进行修改操作
2、StringBuilder底层和String类型一样,也是维护了一个字符数组,数组是私有的,外界无法直接访问,因此在StringBuilder或者String中对数组进行操作的公有方法的封装
3、String类型和StringBuilder的关系:都是用于描述字符串
1、String是不可变的字符序列,没有提供修改私有成员的方法;StringBuilder是可变的字符序列,因为提供了修改成员变量的方法;
2、String长度本身也不可以变化,StringBuilder长度可以变化,可以认为StringBuilder就像一个可以伸缩的容器,用于存储字符

2.StringBuilder的构造方法
1、构造方法作用:创建当前对象、将其他类型的数据,转换成当前类型
2、StringBuilder的构造方法:
StringBuilder():创建一个生成器,初始容量为16个字符
StringBuilder(int capacity):创建一个生成器,初始容量为capacity大小
StringBuilder(String str):创建一个生成器,初始值就是str这些字符,初始大小是str+16
3、获取容积的方法:
capacity():获取当前生成器的容器大小
length():获取当前生成器中的字符个数

3.StringBuilder的添加功能
1、append(任意类型):可以将任意数据类型,转成字符,添加到生成器中
2、insert(int index, 任意数据类型):可以将任意数据类型,添加到指定的位置
说明:1、index的范围是0~当前缓冲区的大小;2、插入数据之后,数据本身的索引就是参数中指定的index
代码示例

           StringBuilder sb = new StringBuilder("122");
			//追加int类型的
			sb.append(12323);

           //insert添加的实现
		    sb.insert(0, 'a');//注意如果sb是空串,那么insert中的索引只能从0开始

4.StringBuilder的删除功能
1、deleteCharAt(int index) :删除指定索引的字符
2、delete(int start, int end):删除指定范围的字符,被删除的部分包含头不包含尾
代码示例

StringBuilder sb = new StringBuilder("0);
sb.append("qwerasdf12345 ");
//sb.delete(6, 8);
sb.delete(8,sb.length()-1);
System.out.println(sb);
		//如果开始索引和结束索引一致那么不做修改

//删除指定索引的字符
sb.deleteCharAt(1);

5.StringBuilder的其他功能
1、replace(int start, int end ,String str):
将字符串缓冲区中的从start开始到end-1这部分内容,替换成str
2、reverse():将原有字符序列进行反转
3.public int capacity() 获取当前缓存区的大小

6.String和StringBuilder的相互转换
String ==> StringBuilder
1.通过构造方法

String str = "我要打游戏";
StringBuilder sb = new StringBuilder(str);

2.通过调用append()

StringBuilder sb = new StringBuilder();
sb.append(str);

StringBuilder ==>String
调用toString的方法

StringBuilder sb = new StringBuilder();
String str = sb.toString();

7.StringBuffer和StringBuilder的区别
1、共同点:
都是字符串的缓冲区,都是字符串的生成器,都是可变的字符序列
2、不同点:
1、出现版本不同:
StringBuffer在jdk1.0出现的
StringBuilder在jdk1.5出现的
2、线程安全性不同:
StringBuffer是线程安全的,在多线程环境下仍然保证数据安全
StringBuilder是线程不安全,在多线程环境下无法保证数据安全
3、效率不同:
StringBuffer效率低
StringBuilder效率高

二、基本类型的包装类

1.什么是包装类
1.包装类对应的就是基本数据类型==>基本数据类型只能够进行赋值(没有属性与方法)==>就产生了包装类
2.java 基本数据类型 四类八种

byte		    Byte
short			Short
int				Integer	
long			Long

float			Float
double			Double

char			Character
 
boolean			Boolean

2.Integer类型
1、各种包装类型的方法、特点基本相同,只要学习一个Integer类型,其他的也触类旁通。
2、Integer类型的对象中,维护了一个私有的成员变量,是一个int类型的字段(成员变量、属性),用于表示这个Integer对象要表示的数字。
3、提供了在int、Integer、String类型之间相互转换的方法
4、提供了一些常量

3.Integer的构造方法
1、Integer(int i):将一个基本类型的int数,转换成Integer类型的对象
使用i给Integer对象中的成员变量赋值
2、Integer(String s):将一个字符串类型的数字,转换成Integer类型的对象
转换的作用

4.Integer类型的成员方法
1、xxxValue():可以将Integer类型的对象,转成其他的基本数据类型:
例如:byteValue()、floatValue()
2、常用静态方法:
public static String toBinaryString(int i) 将int类 以二进制的形式转换为String
public static String toHexString(int i) 将int 类型以16 进制的形式进行转为String
public static String toOctalString(int i) 将int 类型 以8精制进行转换为String
public static int parseInt(String s)throws NumberFpublic static Integer valueOf(String s)throws NumberFormatException 将String 类型转换为 Integer类型ormatException 将String 转换为int类型
public String toString() 将Integer类型转换成一个字符串
// 不常用:
public static int compare(int x,int y) 根据自然排序来进行比较(自然排序)
public static Integer getInteger(String nm,int num) 将int转换为Integer类型 返回的是后面的num

5.Integer类型的常量
1、MAX_VALUE:int类型的最大值
2、MIN_VALUE:int类型的最小值
3、SIZE:int类型在内存中的位数
4、TYPE:int类型在方法区中的字节码对象,int.class

6.Integer、int、String类型互相转换
1、Integer转换成int类型
intValue()
2、int转换成Integer类型
构造方法new Integer(int i)(重点)
通过valueOf() 这个方法
getInteger()给默认值
3、Integer到String的转换
toString方法
拼接一个空串
4、String到Integer的转换
构造方法Integer(String str)
Integer.valueOf
5、int转换成String类型:
Integer.toString(int i)
拼接一个空串
6、String转换成int类型
Integer.parseInt(String str)(重点)

7.自动装箱和拆箱
1、装箱和拆箱:
装箱:将基本数据类型,封装成包装类型的对象,这个过程就是装箱,使用构造方法即可
拆箱:从包装类型的对象中,将其包装的基本类型的数据取出,这个过程就是拆箱,使用intValue方法即可
2、自动装箱和拆箱
自动装箱:可以直接使用基本类型的数据,给引用类型的变量赋值
自动拆箱:可以直接使用包装类对象,给基本类型的变量赋值;包装类对象直接进行算数运算;

三、正则表达式

1.什么是正则表达式
1、普通的字符串就是一个正则表达式,但是只能表达自己本身,无法匹配一类字符串
2、判断某个字符串是否和某个正则表达式的规则匹配,使用String类中的matches方法
3、字符类型:表示单个的字符,使用的符号是中括号[]
说明:只要使用了方括号,无论里面写了多少内容,都表示单个的字符
4、方括号的表达方式:
[abc]:a或者b或者c中的一个
[^abc]:除了a、b、c以外的任何单个字符
[a-zA-Z]:az和AZ中的任意单个字符

2.字符类
[abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围)
[a-d[m-p]] a 到 d 或 m 到 p:[a-dm-p](并集)
[a-z&&[def]] d、e 或 f(交集)
[a-z&&[^bc]] a 到 z,除了 b 和 c:[ad-z](减去)
[a-z&&[^m-p]] a 到 z,而非 m 到 p:[a-lq-z](减去)

3.预定义字符类
. 任何字符(与行结束符可能匹配也可能不匹配)
\d 数字:[0-9]
\D 非数字: [^0-9]
\s 空白字符:[ \t\n\x0B\f\r]
\S 非空白字符:[^\s]
\w 单词字符:[a-zA-Z_0-9]
\W 非单词字符:[^\w]

4.正则中三个注明的方法
1.matches() String的方法 用于做校验
2.split(String regex) 用正则来进行分割
3.public String replaceAll(String regex, String replacement) 表示用正则表达式来进行替换 regex 表示正则的规则 replacement 替换的字符

代码示例

//判断一个QQ邮箱是否合法
public static void main(String[] args) {
        String str = "930465947@qqq.com";
        String teg = "[1-9]\\d{5,14}@qq.com";
        System.out.println(str.matches(teg));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值