StringBuffer:
1.线程安全的可变字符序列
2.一个类似于String的字符串缓冲区
某些方法调用可以改变字符串的的长度和内容
append()在字符串后面增加字符串,insert插入
StringBuffer类最长用的几个方法:
1.append(),直接在StringBuffer对象后面加字符串。
2.insert().在索引位置插入一个字符串,在位置前插的
String与StringBuffer转换:
1.通过StringBuffer的构造方法 newStringBuffer(String s)
2.buffer 通过调用toString方法输出String类型字符串
StringBuffer stringBuffer =new StringBuffer();//无参构造,默认给16个字符大小的缓冲区
System.out.println(stringBuffer.capacity()); //16
StringBuffer stringBuffer1 =new StringBuffer("你好帅");//带String类型的参数
System.out.println(stringBuffer1.capacity()); //19 16+3、汉字也是一个字符
StringBuffer a=stringBuffer1.append(2123); //append返回StringBuff类型的值
System.out.println(a.toString());//你好帅2123 //append在字符串后面可以加东西
StringBuffer b =a.insert(0,"abc");//在索引位置插入需要的字符串
System.out.println(b); //插入索引前一个位置;//abc你好帅2123
//根据索引区间删除索引0但是不删除尾;
System.out.println(b.delete(0,4).toString());
/* b.toString().charAt(4);//根据索引获取字符;
b.indexOf("a");//根据字符返回索引,不存在返回-1
System.out.println(b.indexOf("2"));*/
System.out.println(b.replace(0,1,"l").toString());
包装类
1.包装类的使用可以转换数据类型
byte short int long double float,boolean,char
Integer,Character 这两个包装类名字比较特别
Integer i = 5;包装
包装类型 int ==》 Integer char ==> Character 其它的包装类型都是把首字母换成大写
包装类型的好处: 1. 使用包装类型的方法 2. 类型的相互转换 3. 集合里的数据类型都必须是引用数据类型
Integer: 类在对象中包装了一个基本类型 int 的值。Integer 类型的对象包含一个 int 类型的字段
构造方法: public Integer(int value)
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 类型的位数
常规的方法 : public byte byteValue() 返回值是一个 byte 1.相互转换的时候不要超过最大的范围
public static int parseInt(String s) 静态方法: 把String转换成int类型的方法(最常用)
public static String toBinaryString(int i) 把int 类型转换成 二进制
public static String toOctalString(int i) 把 int 类型转换成 八进制
public static String toHexString(int i) int 类转换为 16进制
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)
ntege 转换成 int 类型 ==> intValue() 直接赋值(Integer i = 10)
自动包装: 把基本数据类型转换成包装类 (穿了一层衣服)
自动拆箱 把包装类转换成 基本数据类型(拖了这一层衣服)
在 jdk 1.5 之后会自动包装,自动拆箱 ( 不用去管了)
手动装箱 :Integer integer = new Integer(10);
手动拆箱 : intValue();
基本用法
int a= Integer.valueOf(“123456”); 将String转成int类型;
int ab =Integer.parseInt(“2222”);
String是没有parseInt方法的
valueOf是打包,即返回包装类
intValue是拆包,返回基本数据类型。
正则表达式:
正则表达式: 1.就是一个字符串 (校验规则的字符串) 主要是做验证,把复杂的问题的简单化 坏处:记忆量,但不一定写的对
语法: 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](减去)
主要要记得StringBuffer可以用reverse方法反转序列,insert插入,append添加
String 的spilt()方法返回的是String的数组,toCharArray是返回字符数组 substring是获取部分字符串的
trim()String忽略字符串副本即空白。StringBuffer通过toString方法就可以转换,int类型转String直接加个空串,关于字符串的操作,记得要引入中间变量即空字符串。for循环中判断数组某个数是 直接引入count 比如每循环三次就 就引入中间变量;
//练习1:匹配QQ号(长度为5-10位,纯数字组成,且不能以0开头)
22 public static boolean isQQ(String qq) {
23 //定义匹配规则:
24 String regex = "[1-9][0-9]{4,9}";
25
26 //判断是否符合规则
27 boolean b = qq.matches(regex);
28
29 return b;
在java中\需要用\来转义,所以写为\\d而不是\d
练习1:对字符串“张三@@@李四@@王五@茅台”进行切割,去掉@符号。
分析:首先我们要去掉字符串中的若干个@符号,如果只有一个@符号我们可以用直接用@来匹配,但这里的@是不确定的,所以我们要用到规则中的:
//描述切割规则:以若干@来切割
9 String regex = "@+"; //如果没有多次的话 会只切割一次@ 数组长度只是减三
但是如果是@+数组长度为4
10
11 //切割后的字符串数组:
12 String[] ss = s.split(regex);
13
14 for(String string:ss){
15 System.out.println(string);
16 }