一.String字符串不可更改
当连接两个字符串的时候,改变的是字符串的形,而地址是不可更改的
比如:str1 = “hello”,str2 = “World”,则连接str1和str2之后的运行结果为helloWorld,但是一共开辟了3个内存空间,str1,str2,以及连接之后。
例如:
public class Demo {
public static void main ( String[] args ){
String str = "hello";
tell(str);
System.out.println(str.toString());
}
//另写一个tell方法来改str的内容World
public static void tell(String s){
s= "World";
}
运行结果:
hello
二 . StringBuffer:缓冲区,本身也是操作字符串,但是与String不同,
它是可以更改的,StringBuffer是一个操作类,必须通过实例化来操作:StringBuffer str = new StringBuffer();
public class Demo {
public static void main ( String[] args ){
StringBuffer str = new StringBuffer();
str.append("hello"); //1.用append方法为字符串添加内容
tell(str); //3.调用tell()方法,把str加在s前面
System.out.println(str);
}
//2.另写一个tell方法来给str加内容World
public static void tell(StringBuffer s){
s.append("World");
}
}
运行结果:
helloWorld
三. StringBuilder:
1.一个可变的字符序列,该类被设计作用StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候,速度比StringBuffer快,建议优先考虑该类。
2.如果涉及到线程安全方面问题,建议使用StringBuffer。
常用方法:
append()
insert()
用法与StringBuffer相同。
String常用方法集合:
字符串定义为 String str = "abcdefg@163.com ";
1.字符串长度:str.length();
2.字符串转换数组:char arr[] = str.toCharArray();
3.从字符串中取出指定位置的字符:str.charAt();
4.字符串与byte数组的转换:byte arr[] = str.getBytes();
5.过滤字符串中存在的字符:str.indexOf("@");返回的是该字符在字符串中的位置(返回值为7
6.去掉字符串的前后空格:str.trim();中间的空格不能去除
7.大小写转换:str.toLowerCase(); str.toUpperCase();
8.判断字符串的开头结尾字符:endsWith(); startWith();
9.从字符串中取出子字符串:subString();
10.替换String字符串中的一个字符:replace();
StringBuffer常用方法集合:
1.添加内容:append()
2.插入:insert(): str.insert(0,"nihao"); //从0开始添加,等于加在前面
3.替换:replace(); str.replace(1,3,"www"); //从1到3开始全部替换
4.过滤:indexOf();
字符串的转换:
String 类别中已经提供了将基本数据型转换成String 的 static 方法
也就是 String.valueOf() 这个参数多载的方法
一、由基本数据类型转换成 String
1、String.valueOf(char c); 将 char 变量 c 转换成字符串
2、String.valueOf(char[] c); 将 char 数组 c 转换成字符串
3、String.valueOf(char[] c,int offset,int count); 将 char 数组 c 中由 c[offset] 开始取 count 个元素 转换成字符串
还有double、float、int、Long等类型转换成字符串也是相同的格式。
二、由 String 转换成数字的基本数据型态
需要使用基本数据型态的包装类别
1、Byte.parseByte(String s); 将字符串 s 转换成byte
2、Double.parseDouble(String s); 将字符串 s 转换成 double
3、Double.parseFloat(String s); 将字符串 s 转换成 float
4、Integer.parseInt(String s); 将字符串 s 转换成 int
……