Java基础00-字符串14
1. API
1.1 API概述
2. String
String字符串变量的创建:
声明: String 变量名;
String str;
声明并初始化: String 变量名="初始值";
String str = "挨点博客";
String常用方法:
1、int length(); 语法:字符串变量名.length(); 返回值为 int 类型。得到一个字符串的字符个数(中、英、空格、转义字符皆为字符,计入长度)
2、char charAt(值); 语法 :字符串名.charAt(值); 返回值为 char 类型。从字符串中取出指定位置的字符
3、char toCharArray(); 语法 :字符串名.toCharArray(); 返回值为 char 数组类型。将字符串变成一个字符数组
4、int indexOf("字符") 语法 :字符串名.indexOf("字符");字符串名.indexOf("字符",值);查找一个指定的字符串是否存在,返回的是字符串的位置,如果不存在,则返回-1 。
in lastIndexOf("字符") 得到指定内容最后一次出现的下标
5、toUpperCase(); toLowerCase();字符串大小写的转换
6、String[] split("字符") 根据给定的正则表达式的匹配来拆分此字符串。形成一个新的String数组。
7、boolean equals(Object anObject) 语法 :字符串变量名.wquals(字符串变量名); 返回值为布尔类型。所以这里用 if 演示。比较两个字符串是否相等,返回布尔值
8、trim(); 去掉字符串左右空格 replace(char oldChar,char newChar);新字符替换旧字符,也可以达到去空格的效果一种。
9、String substring(int beginIndex,int endIndex) 截取字符串
10、boolean equalsIgnoreCase(String) 忽略大小写的比较两个字符串的值是否一模一样,返回一个布尔值
11、boolean contains(String) 判断一个字符串里面是否包含指定的内容,返回一个布尔值
12、boolean startsWith(String) 测试此字符串是否以指定的前缀开始。返回一个布尔值
13、boolean endsWith(String) 测试此字符串是否以指定的后缀结束。返回一个布尔值
14、上面提到了replace方法,接下继续补充一下 String replaceAll(String,String) 将某个内容全部替换成指定内容, String repalceFirst(String,String) 将第一次出现的某个内容替换成指定的内容
2.1 String概述
2.2 String构造方法
Java中的String构造方法
常见的几种
代码示例:
运行结果:
2.3 String对象的特点
String在内存中的过程:
main方法执行
String s1出现在栈内存中
在堆内存中new一片字符空间,将数组chs(001)赋值给s1(002),s1就指向chs。
和上面一样,先在栈内存中存放s2,后在堆内存中new一片空间(003),最后将chs(001)赋值给s2(003)
s1和s2比较是不相同的,因为两个对象的地址是不相同的,输出false
将String s3存放在栈内存中,值(“abc”)存放在堆内存中的常量池(004)中
String s4存放在栈内存中,因为它的值(“abc”)和s3的值是一模一样的,所以它的值也是常量池中的004(“abc”)
比较s3和s4,因为两个对象的地址是相同的,所以输出true
比较s1和s3,因为两个对象的地址是不相同的,所以输出false
2.4 字符串的比较
代码示例:
运行结果:
2.4.1 字符串的遍历
代码示例:
运行结果:
2.5 通过帮助文档查看String中的方法
3. StringBuilder
3.1 StringBuilder概述
先执行main方法,然后String s,常量池中添加"hello",s +=“wordl”;=s = s + “word”;常量池中没有word创建一个。
输出"helloword"
.但是
StringBuilder概述
3.2 StringBuilder的构造方法
3.3 StringBuilder的添加和反转
代码示例:
因为sb.append(“hello”)返回的是对象自己,所以这行代码也是StringBuilder sb2 = sb;但是这个sb对象是有值(hello)的。
所以他俩都是hello,比较也是相同的
因为append返回的是对象本身,所以我们完全可以不用对象接受。
运行结果:
我们还可以采用另一种方法叫做链式编程
因为append返回的是对象本身,所以我们还可以使用方法。
运行结果:
也是一样的。
3.4 StringBuilder和String相互转换
为什么要相互转换?
因为StringBuilder有两个比较好用的方法,一个是append和revers,而String想使用这个两个方法是直接使用不了的。
所以我们要把StringBuilder转为String,使用完后我们还要将String转为StringBuilder。
代码示例,将StringBuilder转化为String:
运行结果:
代码示例,将String转化为StringBuilder:
运行结果:
3.5 通过帮助文档查看StringBuilder中的方法
4. StringBuffer
StringBuffer对象则代表一个字符序列可变的字符串,当一个StringBuffer被创建以后,通过StringBuffer提供的append()、insert()、reverse()、setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString()方法将其转换为一个String对象。
StringBuffer b = new StringBuffer("123"); b.append("456"); // b打印结果为:123456 System.out.println(b);
5. String、StringBuffer和StringBuilder的区别
String、StringBuffer和StringBuilder的区别