String 字符串(常量)
1.字符串的内容永不可改变【重点】
2.正式因为字符串不可改变,所以字符串是可以共享使用的。
3.字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组。
创建字符串的常见3+1中方式
三种构造方法:
public Stirng() 创建一个空白字符串,不含有任何内容
public String(char [] array) 根据字符串数组内容,来创建对应字符串。
public String(byte [] array) 根据字节数组内容,来创建对应的字符串
一种直接创建
String str=“”;
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。
对于基本数据类型来说,==是进行数值的比较。
对于引用数据类型来说,==是进行【地址值】的比较。
1.对于引用类型来说,==进行的是地址值的比较。
2.双引号直接写的字符串在常量池当中,new的不在池当中。
public boolean equals(Object obj) :参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false
注意事项:
1.任何对象都能用Object进行接收
2.equals方法具有对称性,也就是a.equals(b)和equals(a)效果一样。
3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐 "abc".equals(str) 不推荐 str.equals("abc")
String 当中与获取相关的常用方法有:
public int length(); 获取字符串当中含有的字符个数,拿到字符串长度。
public String concat(String str): 将当前字符串和参数字符串拼接成为返回新的字符串。
public char charAt(int index): 获取指定索引位置的单个字符。
public int indexOf(String str): 查找参数字符串在本字符串当中首次出现的位置,如果没有返回- 1值。
public String subString(int index ): 从参数位置一直到字符串末尾,返回新字符串。
public string subString(int begin ,int end): 截取从begin开始到end结束,中间的字符串。
备注: [begin, end),包含左边,不包含右边。
public char[] toCharArray() ; 将当前字符串拆分成为字符数组作为返回值。
public byte[] getBytes() : 获取当前字符串底层的字符数组。
public String replace(CharSequence oldString, CharSequence nweString) : 将所有出现的老字符串替换成为新的字符串,返回替换之后的结果新字符串。
备注: CharSequence 意思就是说可以接受字符串。
public String[] split(String regex): 按照参数的规则,将字符串切分成为若干部分。
注意事项:split方法的参数其实是一个正则表达式 regex
static
如果一个成员变量使用了static关键字,那么这个变量不再属于对象自己,而是属于所在类。多个对象共享同一个数据。
注意:根据类名称访问静态成员变量的时候,全程和对象没有关系,之和类有关系
静态代码块
特点:当第一次用到本类的时,静态代码块执行唯一的一次。
静态内容总是优先于非静态,所以静态代码块币构造方法先执行。
静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值。
String 类
字符串是常量:它们的值在创建之后不能更改。
字符串的底层是一个被final修饰的数组,不能改变,是一个常量。
private final byte [] value;
StringBuider 类
字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化1的String)
底层也是一个数组,但是没有被final修饰,可以改变长度
byte [] value = new byte[16];
StringBuilder 在内存中始终是一个数组,占用空间少,效率高,如果超出了StringBuilder的容量,会自动扩容
StringBuilder()
构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
StringBuilder(String str)
构造一个字符串生成器,并初始化为指定的字符串内容。
StringBuilder 的常用方法
public StringBuilter oppend(.....) 添加任意类型数据的字符串形式,并返回当前对象本身。
链式编程:方法返回值是一个对象,可以继续调用方法
public String toString() 讲当前StringBuilder对象转换为String对象
StringBuilder 和 String 可以相互转换
String -> StringBuilder 可以使用StringBuildre的构造器
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容
StringBuildre -> String 可以使用StringBuilder中的toString方法
public String toStriing() 将当前StringBuilder对象转换为String队对象。
领取专属 10元无门槛券
私享最新 技术干货