String
- 字符串关系运算符"=="比较的是该字符在堆内存中的地址。而使用equals()方法则比较的是内容
String str1 = "Hello";
String str2 = new String("Hello");
System.out.println(str1 == str2);//false
System.out.println(str1.equals(str2));//true
- String字符串是不可更改的,对字符串进行算术运算会在堆内存中开辟新的空间,而运算之前栈内存中的变量指向的堆内存地址是不变的,改变的是新的地址和内容
String str1 = "Hello";
String str2 = str1 + " World";
System.out.println(str2);//Hello World
- 字符串Length()方法获取String变量的长度,与数组不同,数组是Length变量
- 将字符串转换成数组
toCharArray()
String str = "abcdefg";
char c[] = str.toCharArray();
- 从字符串中取出指定位置的字符:
charAt()
(从0开始) - 过滤字符串中存在的字符:
indexOf()
,返回的值是下标
String str = "abcdefg";
System.out.println(str.indexOf("d"));//3
- 去掉字符串的首尾空格字符:
trim()
String str = " 111 ";
System.out.println(str.trim());//111
- 从字符串中取出子字符串:
subString()
- 大小写转换:
toLowerCase()
,toUpperCase()
- 判断字符串的开头结尾字符:
endsWith()
,startWith()
- 替换String字符串中的一个字符:
replace()
StringBuffer
缓冲区,本身也是操作字符串,但是与String不同,StringBuffer是可以更改的
- `append()**:将参数追加到序列中
- `insert()**:有两个参数,第一个参数表示插入的位置,第二个参数表示插入的值
replace(int start,int end,String str)
:从start开始,直到end(不包含end)的字符串用str替换,如果长度不够,就直到结尾toString()
:返回此序列的字符串表示形式,StringBuffer不能直接输出,要转换成String类型然后输出
StringBuilder
一个可变的字符序列,该类被设计作用StringBuffer的简易替换,用在字符串缓冲区被单个线程使用的时候。建议优先考虑该类,速度比StringBuffer要快。但是如果涉及到线程安全方面,建议使用StringBuffer