JavaDay12学习总结

一、笔记

1.StringBuffer类
概述:

1.线程安全的可变字符序列(即可变的字符串)
2.有一个类似String的字符串缓冲区
3.某些方法的调用可以改变该序列的长度与内容,如:append()和insert()方法

String与 StringBuffer区别

相同点: 都是对字符序列进行操作
不同点: 
1. String的数据是不可变的,StringBuffer的内容是可变的
2.StringBuffer 自带缓存区,读取数据块,效率更高

StringBuffer的构造:

无参的构造:默认会给16个字符大小的缓冲区
capacity()  是获取缓冲区容量的大小
StringBuffer(int capacity)会默认给一个容量的大小值

StringBuffer常规的方法
追加:

1.append() 向末尾追加数据
2.insert(int offset, char c) 向指定位置追加数据

删除:

1.deleteCharAt(int index) 根据索引进行删除
2.delete(int start, int end)   根据区间进行删除

获取:

1.charAt(int index)   根据索引获取字符
2.indexOf(String str)  查找是否存在这个字符,存在返回当前的索引,不存在返-1
3.length() 获取字符串的长度

替换:

1.replace(int start, int end, String str)    替换 根据区间来进行替换
2.reverse()   控制翻转
3.toString()   转换成String

StringBuffer 与 String的相互转换

String转换成一个StringBuffer:
1.通过构造方法  new  StringBuffer("abc");
2.通过调用其append   new  StringBuffer().append("abc")';
StringBuffer转换成一个String:
1.通过toString() 方法 
2. 通过String构造方法 new String(sb) 

2.StringBuilder
1.一个可变的字符序列
2.多个线程是不安全的
StringBuffer 与StringBuilder 的 区别:

版本不一样:
StringBuffer 1.0  StringBuilder 1.5 
StringBuffer:多线程安全, 效率低 (开发里使用这个多一点)
StringBuilder:多线程不安全 效率高

3.包装类
基本类型的包装类:
在这里插入图片描述
包装类型的好处:

1.使用包装类型的方法  
3. 类型的相互转换    
4. 3. 集合里的数据类型都必须是引用数据类型

Integer类型:
类在对象中包装了一个基本类型 int 的值。
Integer 类型的对象包含一个 int 类型的字段
构造方法:

1.public Integer(int value)
2. public Integer(String s)   第二个构造传递的参数是String类型, 但是必须是数字 ,否则会出现这个异常 : java.lang.NumberFormatException

常量:

public static final int MAX_VALUE   获取int类型最大的值
public static final int MIN_VALUE   获取int类型最小的值
public static final int SIZE        获取int类型的位数

常规的方法 :

1.public byte byteValue()       返回值是一个 byte,相互转换的时候不要超过最大的范围
2.public static int parseInt(String s)  静态方法:把String转换成int类型的方法(最常用)
3.public static String toBinaryString(int i)   把int 类型转换成二进制
4.public static String toOctalString(int i)  把int 类型转换成 八进制 
5.public static String toHexString(int i)    int 类转换为16进制
6.public static Integer valueOf(int i)   把int 类型转换成包装类 

String, int , Integer (数据类型的相互装换)

String转换成int 类型的三种方式:
1.通过构造 new Integer() 
2.通过parseInt(String s)(常用)  
3.valueOf(String str)
int 类型转换成String类型
1.new String(int i)   
2.拼接 +""(常用)   
3.toString()方法
int类型转换成Integer 类型
 1.通过构造方法  new Integer()  
 2.valueOf(int i)
 Integer转换成 int 类型   
1.intValue()       
2.直接赋值(Integer  i  = 10)  

装箱与拆箱
自动包装: 把基本数据类型转换成包装类 (穿了一层衣服)
自动拆箱: 把包装类转换成 基本数据类型(拖了这一层衣服)
在 jdk1.5 之后会自动包装,自动拆箱 ( 不用去管了)
手动装箱 :Integer integer = new Integer(10)
手动拆箱 : intValue()
4.正则表达式
定义:就是一个字符串 (校验规则的字符串)
好处:主要是做验证,把复杂的问题的简单化
坏处:记忆量大,且不一定写的对
正则的三个方法 :

  第一个是比较 matches(str)  检验是否匹配
  第二个是  split("")   切割
  第三个是: replaceAll(reg,"")  替换

字符类

[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](减去)

预定义字符类

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

Greedy 数量词

X? X,一次或一次也没有
X* X,零次或多次 
X+ X,一次或多次
X{n} X,恰好 n 次 
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次

二、总结

第十二天的学习,依然在学API,很乏味,不过相比昨天,今天学习来好点。今天学习的正则表达式,需要记忆的东西实在太多了。加油干。
QQ号的验证:

        Scanner input=new Scanner(System.in);
        System.out.println("输入QQ号:");
        String str=input.nextLine();
        System.out.println(str.matches("[1-9]\\d{4,14}")==true?"是QQ号":"假的");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值