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) 将第一次出现的某个内容替换成指定的内容
Java中的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
代码示例:
运行结果:
代码示例:
运行结果:
先执行main方法,然后String s,常量池中添加"hello",s +=“wordl”;=s = s + “word”;常量池中没有word创建一个。
输出"helloword"
.但是
StringBuilder概述
代码示例:
因为sb.append(“hello”)返回的是对象自己,所以这行代码也是StringBuilder sb2 = sb;但是这个sb对象是有值(hello)的。
所以他俩都是hello,比较也是相同的
因为append返回的是对象本身,所以我们完全可以不用对象接受。
运行结果:
我们还可以采用另一种方法叫做链式编程
因为append返回的是对象本身,所以我们还可以使用方法。
运行结果:
也是一样的。
为什么要相互转换?
因为StringBuilder有两个比较好用的方法,一个是append和revers,而String想使用这个两个方法是直接使用不了的。
所以我们要把StringBuilder转为String,使用完后我们还要将String转为StringBuilder。
代码示例,将StringBuilder转化为String:
运行结果:
代码示例,将String转化为StringBuilder:
运行结果:
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);
String、StringBuffer和StringBuilder的区别
区别02