十九、字符串
19.1、概述
java.lang.String类代表字符串。
API 当中说: Java 程序中的所有字符串字面值(如"abc" )都作为此类的实例实现。
其实就是说:程序当中所有的双引号字符串,都是string类的对象。(就算投有new, 也照样是。)
19.2、字符串的特点
① 字符串的内容永不可变。
② 正是因为字符串不可改变,所以字符串是可以共享使用的
③ 字符串效果上相当于是char[ ]字符数组,但是底层原理是byte[]字节数组。
19.3、字符串的构造方法
创建字符串的常见3+1种方式。
三种构造方法:
public String(); 创建一个空白字符串, 不含有任何内容。
public String(char[] array): 根据字符数组的内容,来创建对应的字符串。
public String(byte[] array): 根据字节数组的内容,来创建对应的字符串。

一种直接创建:
string str = "Hello"; //右边直接用双引号
注意,直接写上双引号,就是字符串对象。
19.4、字符串常量池
字符串常量池:程序当中直接写上的双引号字符串,就在字符串常量池中。

对于基本类型来说,== 是进行数值的比较。
对于引用类型来说,== 是进行地址值的比较。

19.5、字符串的常用方法
19.5.1、内容比较equals()
public boolean equals(object obj)//参数可以是任何对象,只有多数是一个字符串并且内容相同的才 会给true否则返回false。
注意事项:
① 任何对象都能用object进行接收。
② equals方法具有对称性,也就是a. equals(b)和b.equals(a)效果-样。
③ 如果比较双方一个常量一个变量,推荐把常量字符串写在前面。
推荐: “abc”.equals(str) 不推荐: str.equals( “abc”)


④ public boolean equalsIgnoreCase(String str):
忽略大小写,进行内容比较。

注意,只有英文字母区分大小写,其他都不区分大小写
19.5.2、与获取相关的方法
public int length()//获取字符串当中含有的字符个数,拿到字符串长度。
public String concat(String str)//将当前字符串和参数字符串拼接成为返回值新的字符串。
public char charAt(int index)/获取指定索引位置的单个字符。(索引从开始。 )
public int index0f(String str)//查找参数字符串在本字符串当中首次出现的索引位置,如果没有返回-1值。


19.5.3、与截取相关的方法
public string substring(int index)//截取从参数位置一直到字符串末尾,返回新字符串。
public string substring(int begin, int end)//截取从begin开始,一直到end结束, 中间的字符串。 备注:[begin,end), 包含左边,不包含右边。



19.5.4、与转换相关的方法
public char[] toCharArray()//将当前字符串拆分成为字符数组作为返回值。
public byte[] getBytes()//获得当前字符串底层的字节数组。
public String replace(CharSequence oldString, CharSequence newString)//将所有出现的老字符串替换成为新的
//字符串,返回替换之后的结果新字符串。
//备注:CharSequence 意思就是可以接受字符串类型



19.5.5、与分割相关的方法
publie String[] split(String regex)//按照参数的规则,将字符串切分成为若干部分。


注意事项: split方法的参数其实是一个“正则表达式”。
19.6、综合案例


本文详细介绍了Java中的String类,包括其不可变性、字符串共享、构造方法及字符串常量池。讲解了equals()和equalsIgnoreCase()方法的使用,以及length()、concat()、charAt()、indexOf()等字符串操作方法。还提到了substring()、toCharArray()、getBytes()、replace()和split()等实用方法,最后探讨了字符串在实际编程中的应用案例。
1018

被折叠的 条评论
为什么被折叠?



