<String、StringBuffer和StringBuilder>
一:判断。
1、boolean contains(str):
特殊之处:indexof(str):可以索引str第一次出现位置,如果返回-1,表示该str不在字符串中存在。所以,也可以用于对指定判断是否包含。(而且该方法即可以判断,有可以获取出现的位置)
2、字符串是否有内容。
boolean isEmpty():原理就是判断长度是否为0.
3、字符串是否是以指定内容开头。
boolean startsWith(str);
4、字符串是否是以指定内容结尾。
boolean endsWith(str);
5、判断字符串内容是否相同,复写了Object类中的equals方法。
boolean equals(str);
6、判断内容是否相同,并忽略大小写。
boolean equalsIgnoreCase();
二:转换。
1、将字符数组转成字符串。
构造函数:String(char【】)
String(char【】,offset,count):将字符数组中的一部分转成字符串。
静态方法:
Static String copyValueof(char【】);
Static String copyValueof(char【】 date,int offset,int count);
Static String valueof(char【】);
2、将字符串转成字符数组。
char【】 toCharArray();
3、将字符数组转成字符串。
String(byte【】)
String (byte【】,offset,count):将字节数组中的一部分转成字符串。
4、将字符串转成字节数组。
Byte【】 getBytes();
5、将基本数组类型转成字符串。
Static String valueof(int);
Static String valueof(double);
特殊:(字符串和字节数组在转换过程中,是可以指定编码表的)
三:替换。
String replace(oldchar,newchar);
四:切割。
String【】 split(regex);
五:转换,去除空格,比较。
1、将字符串转成大写或则小写。
String toUpperCase();
String toLowerCase();
2、将字符串两端的多个空格去除。
String trim();
3、对两个字符串进行自然顺序的比较。
Int compareTo(string);
六:实行代码演示。
(2)将一个字符串进行反转。将字符串中指定部分进行反转,“abc”;abc。
思路:1、将字符串变成数组,对数组反转。(将字符串变成数组)
2、将反转后的数组变成字符串。(对数组反转)
3、只要将或反转的部分的开始和结束位置作为参数传递即可。(将数组变成字符串)
StringBuffer
一:概念。
(1)字符串的组成原理就是通过该类实现的。
(2)StringBuffer可以对字符串内容进行增删。
(3)StringBuffer是一个容器。
(4)很多方法与String相同。
(5)StringBuffer是可变长度的。
二:特点。(StringBuffer是字符串的缓冲区)
(1)存储。
(2)删除。
(3)获取。
(4)修改。
1、存储。
(1)StringBuffer append():将指定数据作为参数添加到已有数据结尾处。
(2)StringBuffer insert(index,数据):可以将数据插入到指定index位置。
2、删除。
(1)StringBuffer delete(start,end):删除缓冲区中的数据,包含start,不包含end。
(2)StringBuffer deleteCharAt(index):删除指定位置的字符。
3、获取。
(1)char charAt(int index)
(2)Int indexof(String str)
(3)Int lastindexof(String str)
(4)Int length()
(5)String substring(int start,int end)
4、修改。
(1)StringBuffer replace(start,end,string);
(2)Void setCharAt(int index, char ch);
5、实行代码演示。
(1)
注意:1、StringBuffer相当于一个面盆(容器),sb与sb1为同一个面盆(同一个地址值),append()只增加面盆里的含量,其余不变。2、string为什么要复写tostring和equals()?
因为object的equals为地址值,tostring也为地址值,两个输出都没意义。
3、上面第二张代码为什么会复写tostring()?
因为系统打印输出的时候,如果只传了一个对象名,那么系统会默认打印这个对象名的tostring()方法。Eg :sop(sb1)。
(2)
注意:sb.delete(1,3)包1不包括3。
(3)获取。
(4)
总结特点:(1)长度时可变的。
(2)可以字节操作多个数据类型。
(3)最终通过toString方法变成字符串。
三:反转。
1、StringBuffer reverse();
2、将缓冲区中指定数据存储到指定字符数组中。
Void getChars(int srcBegin, int srcEnd,char【】 dst,int dstBegin)。
3.实行代码演示。
4、版本之后出现了stringBuilder。
(1)StringBuffer是线性同步。
(2)StringBuilder时线性不同步。(以后开发建议使用)
(3)好处:提高效率;简化书写;提高安全性。
5、stringBuilder与string的区别。
(1)stringBuilder可创建对象,用来存储字符串,并对其做了追加和插入操作。这些操作修改了str对象的值,而没有创建新的对象。(如下图所示)
字符串长度:14;
插入前:hello imooc520
插入后:hello imooc!520