OutOfMemoryError:内存溢出错误
一、StringBuilder及其API
1、java.lang.StringBuilder
2、专门用来修改字符串内容的工具类
3、提供了对字符串内容编辑的:增、删、改、插 的主要功能
4、StringBuilder内部维护一个可变的char数组,所以修改内容不会创建新的String对象
//默认的无参构造器创建时内部表示空字符串:""
StringBuilder builder=new StringBuilder();
//该构造器可以基于一个给定的字符串进行编辑
StringBuilder builder=new StringBuilder(str);
// StringBuffer buffer=new StringBuffer(str);
增加:append()方法,用来将给定内容添加到字符串末尾
builder.append(",为了找个好工作");
//toString()方法:进行String类与其他类型的连接操作
String line= builder.toString();
System.out.println(line);
修改:replace()方法,将当前字符串中指定范围内的内容替换为新内容
builder.replace(9,16,"就是为了改变世界!");//注意,下标含头不含尾
System.out.println(builder.toString());
删除:delete(),将当前字符串中指定范围内的字符串删除
builder.delete(0,8);//下标从0开始
System.out.println(builder);//不加toString默认也是输出toString返回值
插入:insert(),将给定内容插入到当前字符串中的指定位置
builder.insert(0,"活着");
System.out.println(builder);
反转:
builder.reverse();
System.out.println(builder);
注:
String str = "hello";
str = str + "world";//class文件中没有"+"链接字符串
它只在源代码中出现,编译器会将其改为:
str = new StringBuilder(str).append("world").toString();
//StringBuilder与StringBuffer功能一样
√ StringBuilder:不是并发安全的,jdk1.0-----输出的内容会乱序
StringBuffer:是并发安全的,jdk1.5//区别----输出内容顺序
//当多线程操作同一个字符串时,用StringBuffer
二、正则表达式(String提供了使用正则表达式的相关功能)
1、描述字符串内容格式
2、用来验证某个字符串是否符合格式要求( 只管格式不管有效性 )
例:手机号的验证、邮箱格式的验证
3、基本语法
①[]:用来表示1个字符。[]中可以指定该字符的内容范围
//例如:
[abc]:该字符要么是a要么是b要么是c
[a-z]:"-"表示范围,a-z:表示abcdefg.....xyz 任意小写字母
[a-zA-Z]:任意一个字母
[0-9]:表示任意一个数字
②预定义字符
\d:表示一个数字,等价与[0-9]
\s:表示一个空白字符。空格,缩进,回车(占位但是看不见的字符)
\w:表示一个单词字符(数字,字符,下划线) 等价于[a-zA-Z0-9_]
.:表示任意一个字符//转义\.表示.
//取反:
\D:表示不是数字
\S