String Api:
一、String的定义 String默认是空字符串。
定义: 字符串,在底层就是一个字符数组
1.String 一旦长度确定好,也不能进行增删。
2.Java 中提供了一个常量池概念,可以让String 指向长常量池,如果没有则自动创建。
3.java为了更加字符串高效的执行,设计了两个StringBuild&String Buffer
二、String 的构造方法。
1.直接写:String s=“ab”;
2.new String(ab)
3.字节数组
byte[]bytes={97,98,99,100}; 字节数组 byte 97a 阿子特码值
String s2=new string(bytes);
String s5=new String(bytes,offset:1,length:2); 取 字节数组的下标第一位第二位。
System.out.println(s2)
4.字符数组
char[]chars={'e','f','g','h'}; char 字符数组
String s4=new string(chars); 把char 传入新建的对象中
System.out.println(s4)
String 方法。 API
·常用方法
。split()分割
。subString()切割
。indexof()判断字符串所在位置下标
。trim()去除两边空格
。toLowerCase() 小写
。toUpperCase() 大写
。contains()包含
concat()向尾部拼接
。endsWith()判断是否以XXXX结尾
length 长度。 数组.length 是属性, String .length () 用的length 方法
to String 。 默认打印是地址,
equals 比较。
char AT 给我数组下标,返回该下标对应的值。
get.bytes 转成字节数组
toUpperCase 转成大写
toLowerCase 转小写。
indexof( ) 查询对应字符串或者字符的ASCII在该字符串第一次出现的的位置 。
split()分割字符串,而且可以指定分割符。一般用英文的逗号分割。
equalsIgnorecase(); 忽略大写得比较方法
substring 切割字符串。 要前不要后,传一个值,从开始位置到最后,
tocharArray();
contains() 字符串是否包含 有一个多态的发生
concat(); 拼接 向尾部拼接。 在框架中会使用
startsWith 判断前缀 prefix 前缀、
以XXX开始(startsWith)或者结尾(endsWith)
endsWith("") 判断 用什么结尾。 用的最多的
isEmpty(); 判断是不是空的字符串。
trim() 去除两边空格。
StringBuild&StringBuffer
都是可变的字符数组。
原理:
扩容原理
默认长度是16 当长度大于16时,则 容量等于 (原长度+1)*2 当创建对象时 传入的值会加到默认容量中。
也是创建数组但是可以自动扩容
1.length 看长度
StringBuffer stringBuffer = new StringBuffer(); 先创建对象在调用方法
stringBuffer.length();
2.capacity() 看容量
StringBuffer stringBuffer = new StringBuffer();
stringBuilder.capacity()); // 底层容量。
3.append()向尾部添加
stringBuffer.append("vas");
4.insert (a b )向指定下标位置添加 值。 a指定的下标,b指定添加的值。
stringBuffer=stringBuffer.insert(1,"ds");
5.reverse()反转。
public static boolean dealwith(String str){/ 返回一个布尔类型的值
String lowerCase str.toLowerCase();//变成小写
StringBuilder strBuild=new StringBuilder();//创建StringBuilder对象
strBuild.append(lowerCase);//赋值。
stringBuilder reverse strBuild.reverse();//反转
return LowerCase.equals(reverse.tostring()); /返回
StringBuild&StringBuffer 区别
StringBuffer:线程安全 速度慢但是线程安全。
StringBuild:线程不安全 速度快但是线程不安全。