-
- 字符串,底层就是一个字符数组
- 1.一旦长度确定,不能更改
- 2.java提供了一个常量池的概念,可以让String直接指向常量池,如果没有,则自动创建
- 3.java为了字符串更加高效的执行,设计了两个类StringBuild&StringBuffer
-
- 1.直接写:String s=“ab”;
- 2.new String("ab")
- 3.字节数组:
byte[] bytes={97,98,99,100};
String s2=new String(bytes);
String s5=new String(bytes,1,2);
System.out.println(s2);
System.out.println(s5);
char[] chars={'e','f','g','h'};
String s4=new String(chars);
String s6=new String(chars,1,2);
System.out.println(s4);
System.out.println(s6);
-
- charAt()给我数组下标,返回该下标位置的字符
- length() 字符串长度
- toUpperCase()转大写
- toLowerCase()转小写
- indexOf()字符(ASCII)或字符串第一次出现的位置
- lastIndexOf()最后一次出现的位置
- subString()切割字符串,传一个值,开始到结束,传两个值,要前不要后
- split()分割字符串,括号里写分隔符
- trim()去除两边空格
- startsWith()判断前缀
- endsWith()判断后缀
- contains()是否包含
- concat()向尾部追加字符串
- equalsIgnoreCase()忽略大小写比较相等
- isEmpty()判断是否是空字符
-
-
- 也是创建字符数组,但是可以自动扩容
- 扩容原理:默认长度是16,当放满了,还要放,则容量=(原容量+1)*2;创建对象时,传入的字符串长度会默认加到默认容量上
-
-
- length() 看长度
- capacity() 看容量
- append()向尾部添加
- insert(a,b) a是在哪个下标位置,b是添加什么
- reverse()反转
-
- StringBuild&StringBuffer区别
-
-
- StringBuffer:线程安全,速度慢,但是(线程)安全
- StringBuilder:线程不安全,速度快,但是(线程)不安全