1、
通过构造方法创建的字符串对象和直接赋值方式创建的字符串对象有什么区别呢?
通过构造方法创建字符串对象是在堆内存。
直接赋值方式创建对象是在方法区的常量池。
==:
基本数据类型:比较的是基本数据类型的值是否相同
引用数据类型:比较的是引用数据类型的地址值是否相同
2、
字符串的内容是存储在方法区的常量池里面的。是为了方便字符串的重复使用。
字符串是常量,存在于常量池中。更准确的来说,只有使用双引号直接写出来的字符串才是存在于常量池中的。
3、String:字符串类
由多个字符组成的一串数据
字符串其本质是一个字符数组
构造方法:
String(String original):把字符串数据封装成字符串对象
String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象
注意:字符串是一种比较特殊的引用数据类型,直接输出字符串对象输出的是该对象中的数据。
4、String类的判断功能:
boolean
equals
(Object obj):比较字符串的内容是否相同
boolean
equalsIgnoreCase
(String str):比较字符串的内容是否相同,忽略大小写
boolean
startsWith
(String str):判断字符串对象是否以指定的str开头
boolean
endsWith
(String str):判断字符串对象是否以指定的str结尾
5、String类的获取功能:
int
length
():获取字符串的长度,其实也就是字符个数
char
charAt
(int index):获取指定索引处的字符
int
indexOf
(String str):获取str在字符串对象中第一次出现的索引
String
substring
(int start):从start开始截取字符串
String
substring
(int start,int end):从start开始,到end结束截取字符串。包括start,不包括end
6、String类的转换功能:
char[]
toCharArray
():把字符串转换为字符数组
String
toLowerCase
():把字符串转换为小写字符串
String
toUpperCase
():把字符串转换为大写字符串
7、String类的其他功能
去除字符串两端空格
String
trim
()
按照指定符号分割字符串
String[]
split
(String str) //分割的结果是字符串数组
String s4 = "aa,bb,cc";
String[] strArray = s4.split(",");
当且仅当此字符串包含指定的 char 值序列时,返回 true
public
String
replace
(char oldChar,char newChar)
返回一个从此字符串派生的字符串,它将此字符串中的所有 oldChar 替代为
newChar。
将字符串中所有的oldString替代为newString,返回新的字符串
将字符串中第一个oldString替代为newString,返回新的字符串
8、StringBuilder
StringBuilder:是一个可变的字符串。字符串缓冲区类。
构造方法:
StringBuilder()
成员方法:
public int capacity():返回当前容量
public int length():返回长度(字符数)
添加功能
public StringBuilder append(任意类型):添加数据,并返回自身对象
反转功能
public StringBuilder reverse():把字符反转,并返回自身对象
StringBuilder和String的相互转换
StringBuilder -- >String
public String toString():通过toString()就可以实现把StringBuilder转成String
String -- >StringBuilder
StringBuilder(String str):通过构造方法就可以实现把String转成StringBuilder