一、java核心类,string,内部是一个byte[]数组,具有不可修改性,是由private final byte[]来保证的,比较字符串需用equals()比较。还有一个equalsIgnoreCase()方法,忽略大小写比较。
有许多方法 contains() indexOf() lastIndexOf() startsWith() endsWith()
substring()一个参数表示到尾,两个参数表示 一个区间
trim()移除首尾空白字符 strip()也移除首尾空白字符 与trim()不同的是中文空格字符也会移除,stripLeading() stripTrailing()
isEmpty() 字符为空比如 "" isBlank()字符均为空白字符, replace(old char or string,new char or string); replaceAll(正则表达式,目标字符串) split()传入一个正则表述式,分割字符串.返回字符串数组。 join(中间字符,源字符串(字符串数组)),将源字符串字符中间加上连接字符串;
把基本类型转化为string,使用String.valueOf();方法 将string转化为基本类型有相应的parseXXX方法,如Boolean.parseBoolean("true"); Integer.parseInt("123"); Integer.getInteger(String),是把字符串指定的系统变量转换为int.使用外部数组初始化时,改变外部数组并不会改变String的值,因为是复制进去的。byte[] b1="Hello".getBytes("UTF-8")这样可以将转换过的编码存储于b1的byte[]中,如果已有一个字节数组,那么 可以使用string s1=new string(b1,"UTF-8"); 使用字符编码时需要捕获异常并处理。
二、StringBuilder,可变对象,可以预分配缓冲区,类似于c++中的String,可以直接在其后拼接字符串,返回引用本身,可支持链式操作,
三、StringJoiner,用于拼接字符串, var sj=new StringJoiner(", ") sj.add(字符串数组)->在字符串数组间加入连接字符 var sj= new StringJoiner(连接字符串,开头字符串,结尾字符串),StringJoiner内部使用StringBuilder,成员方法toString()可以将StringJoiner转化为String.
四、包装类,基内只有一个基本类型,比如Integer,其内只有一个int,只不过封装了一些统一的接口,让他们成为对象,使用起来和普通数字类型没啥区别。 把Int直接变成Integer的写法称之为自动装箱,把Integer变为int的赋值写法,称为自动拆箱,它们都是编译时完成的。所有的包装类型都是不变类,比较引用对象要使用equals(),不能使用==。把能创建新对象的静态方法,称为静态工厂方法。基本装箱类型有相应的方法toUnsignedInt();将有符号数转化为无符号数。