黑马程序员——String及其相关类
------- android培训、java培训、期待与您交流! ----------
1.String类
(1)String类代表字符串,其最大特点就是一旦初始化就不可以被改变。Java程序中的所有字符串面值都是此类的实例实现。一个字符串常量就是String的匿名对象。
(2)字符串的两种赋值方式:
第一种:String str1="hello";
第二种:String str2=new String("hello");
两种赋值方式的区别:
第一种方式在内存中只有一个对象;而第二种方式在内存中有两个对象。
(3)String的常见方法
<1>获取
int length():获取字符串的长度。
char charAt(int index):获取指定位置上的某个字符。
int indexOf(int ch):获取指定字符在字符串中的位置。
int indexOf(int ch,int fromIndex):从指定位置开始,获取ch在字符串中出现的位置。
int indexOf(String str):返回的是str在字符串中第一次出现的位置。
int indexOf(String str,int formIndex):从formIndex开始,获取str在字符串中出现的位置。
int lastIndexOf(int ch):反向索引ch在字符串中出现的位置。
<2>判断
boolean contains(String str):判断字符串中是否包含某一个子串。
boolean isEmpty():判断字符串是否有内容。
boolean startsWith(String str);判断是否是以指定内容开头。
boolean endsWith(String str):判断是否是以指定内容结尾。
boolean equals(String str):判断字符串内容是否相同。
boolean equalsIgnoreCase();判断内容是否相同,并忽略大小写。
<3>转换
String(char[] ch):将字符数组转换为字符串。
static String copyValueof(char[] ch):将字符数组转换为字符串。
char[] toCharArray():将字符串转换为字符数组。
byte[] getBytes():将字符串转换成字节数组。
static String valueOf(基本数据类型):将基本数据类型转换为字符串。
<4>替换
String replace(char old,char new):用指定字符替换原有字符,并返回一个新串。
String replace(String old,String new):用指定字符串替换原有的字符串,并返回一个新串。
<5>切割
String[] split(regex):将字符串按照指定正则表达式进行切割,并返回一个新串。
<6>截取
String substring(int beginIndex):从指定位置开始截取到结尾。
String substring(int beginIndex,int endIndex):从指定位置开始截取,包含头不包含尾。
<7>转换大小写
String toUpperCase();将指定字符串转换为大写。
String toLowerCase():将指定字符串转换为小写。
<8>去除空格
String trim();将字符串两端的多个空格去除。
字符串练习示例:
//获取两个字符串中最大相同子串。
//获取两个字符串中最大相同子串。
class StringDemo
{
public static void main(String[] args)
{
getSame("qqwe2223akdieujj","poiuytrw222e398777");
}
private static void getSame(String str1,String str2)
{
//判断大小串
String max="";
String min="";
max=(str1.length()>str2.length())?str1:str2;
min=(max==str1)?str2:str1;
//循环获取子串进行比较
for(int x=0;x<min.length();x++)
{
for(int start=0,end=min.length()-x;end!=min.length()+1;start++,end++)
{
//获取子串
String temp=min.substring(start,end);
//判断
if(max.contains(temp))
{
System.out.println("最大相同子串是:"+temp);
return;
}
}
}
}
}
2.StringBuffer类
(1)StringBuffer是字符串缓冲区,可以视为一个容器。
特点:长度是可变的;可以直接操作多个数据类型;可以通过toString()方法变为字符串。
(2)常见操作方法:
<1>存储
StringBuffer append(参数):将指定数据作为参数添加到已有数据结尾处。
StringBuffer insert(int index,数据):将数据插入到指定index处。
<2>删除
StringBuffer delete(int start,int end):删除缓冲区的包含start,不包含end的数据。
StringBuffer deleteCharAt(int index):删除指定位置的字符。
<3>获取
char charAt(int index):获取指定索引处的字符。
int indexOf(String str):获取指定字符串的位置。
int lastIndexOf(String str):反向索引查找指定字符串的位置。
int length():获取长度。
<4>修改
StringBuffer replace(int start,int end,String str):从start开始,不包含end替换为str。
<5>反转
StringBuffer reverse():反转字符串。
3.StringBuilder类
StringBuilder是在JDK1.5之后出现的。其与StringBuffer的实现原理是基本相同的。
两者的区别是:
StringBuffer是同步的,线程安全的,但性能较低;
StringBuilder是不同步的,线程不安全的,但性能较高。
注意:在开发中,建议使用StringBuilder。