0814总结

0814总结

StringBuffer

1、线程安全的可变字符序列(可变的字符串) JDK1.0
2、一个类似于 String 的字符串缓冲区
3、某些方法调用可以改变该序列的长度和内容 append() insert()添加

String 和 StringBuffer

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

StringBuffer的构造:

//无参构造
StringBuffer()

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

StringBuffer常规的方法
追加

1、向末尾追加数据

StringBuffer s=new StringBuffer("我爱你中国");
s.append("真的爱你");

2、向指定位置追加数据

s.insert(3,"我的");
//结果为:我爱你我的中国
//"3"代表要插入的位置(索引),"我的"代表要插入的东西
删除

1、根据索引进行删除

s.deleteCharAt(2);
//"2"为索引值

2、根据区间进行删除

s.delete(2,4);
//包头不包尾
获取

根据索引获取字符

System.out.println(s.charAt(2));

查找是否存在这个字符

System.out.println(s.indexOf("我")); 
//存在返回当前的索引,不存在返回-1

获取字符串的长度

System.out.println(s.length());

根据区间来进行替换

s.replace(2,3,"他");
//包头不包尾

控制翻转

s.reverse();

转换成String

s.toString();
String转换成一个StringBuffer :

通过构造方法:new StringBuffer(“abc”);
通过调用其append:

StringBuffer str=new StringBuffer().append("abc");
StringBuffer 转换成一个 String

通过toString()
通过String构造方法:new String(s)

StringBuilder

1、一个可变的字符序列
2、多个线程是不安全的

StringBuffer 与 StringBuilder 的区别

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

包装类

包装类型
int ==> Integer
char ==> Character
其它的包装类型都是把首字母换成大写

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

Integer

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

构造方法:

public Integer(int value)
public Integer(String s)该构造传递的参数是 String 类型,但是必须是数字,否则就会出现异常(java.lang.NumberFormatException)

常量

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

常规的方法

返回值是一个 byte:public byte byteValue()
把String转换成int类型的方法(最常用):public static int parseInt(String s)
把 int 类型转换成二进制:public static String toBinaryString(int i)
把 int 类型转换成八进制:public static String toOctalString(int i)
把 int 类转换为十六进制:public static String toHexString(int i)
把int 类型转换成包装类:public static Integer valueOf(int i)
注意:相互转换的时候不要超过最大的范围

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)

Intege 转换成 int 类型

1、intValue()
2、直接赋值(Integer i = 10)

自动包装:把基本数据类型转换成包装类 (穿了一层衣服)
自动拆箱:把包装类转换成基本数据类型(拖了这一层衣服)
在 jdk 1.5 之后会自动包装,自动拆箱
手动装箱 :Integer integer = new Integer(10);
手动拆箱 : intValue();

正则表达式

就是一个字符串(效验规则的字符串),主要是做验证,把复杂的问题简单化,但是其记忆量很大,而且不一定写的对
语法:matches(String regex) 检验这个正则与该字符串是否匹配

字符类

[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]

Greed数量词

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

正则的三个方法

1、比较 matches(str)
2、split("")
3、replaceAll(reg,"")

作业

在进行.equals判断时,要先将StringBuffer类型先转化为String类型才可以比较,否则将一直相等。

分割字符串后,进行完所需要的操作后,遍历输出时会自动换行。若想不换行,可以提前定义一个变量去接收它

String  str="To be or not to be";
String []arr=str.split(" ");
StringBuffer rra=new StringBuffer();  //定义接收的变量
for (String word:arr){
    rra.append(new StringBuffer(word).reverse()+" "); //利用字符串的追加进行拼接。
}
System.out.println(rra);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值