黑马程序员_java之String类
String类用于描述字符串事物;字符串是一个特殊的对象,一旦被初始化就不可被改变;String类不可被继承。
String str1=”abc”与String str2=new String(“abc”)区别?str1是一个类类型变量,“abc”是一个对象;str1在内存中有一个对象,str2在内存中有两个对象;
s1= =s2 false,对象不同,s1.equals(s2) true Sring类复写了Object中的equals方法,用来判断字符串内容是否相同;
String str3=”abc” 打印s1= =s3结果 true,字符串存在常量池中,abc已经存在,不再开辟空间。
String类常见操作。判断、获取、转换、切割、替换、比较和去除空格、大小写转换
获取:
int length() 返回此字符串的长度。char charAt(int index) 返回指定位置的字符值。
int indexOf(int ch) 返回ch此字符串中第一次出现处的位置。
int indexOf(int ch, int fromIndex)返回字符串中第一次出现ch的位置,从fromIndex开始搜索。
int indexOf(String str) 返回str此字符串中第一次出现处的位置。str不存在,返回-1
int indexOf(String str, int fromIndex)返回字符串中第一次出现str的位置,从fromIndex开始搜索。
int lastIndexOf(String str, int fromIndex)返回字符串中最后一次出现str的位置,从fromIndex开始反向搜索。
获取子串 String substring(beginIndex, endIndex)包含头,不包含尾,若角标不存在会异常
判断:
是否包含子串 boolean contains(CharSequence s)
特殊之处:int indexOf(String str) 既可判断又可获取位置
是否有内容 boolean isEmpty() JDK1.6 原理判断长度是否为0
是否以指定内容开头 boolean startsWith(str)
是否以指定内容结尾 boolean endsWith(str)
判断字符串内容是否相同 boolean equals(str)
判断内容是否相同,并忽略大小写 boolean equalsIgnoreCase(str)
转换
将字符数组转成字符串
构造函数:String(char[] value, int offset, int count)
静态方法:static String copyValueOf(char[] data, int offset, int count)
将字符串转成字符数组
char[] toCharArray()
将字符串转成字节数组
byte[] getBytes() 可指定编码表
将字节数组转成字符串
构造函数:String(byte[] value, int offset, int count)
将基本数据类型转成字符串
static String valueOf(int )
如:3+””; String valueOf(3)
替换:
String replace(oldStr, newStr),若要替换的字符不存在,返回的是原串
切割:
String[] split(String regex)
转换、去除空格、比较
将字符串转成大写或小写
String toUpperCase() String toLowerCase()
去除两端空格
String trim()
对两个字符进行自然顺序的比较
int compareTo(str)
String s1=”abc” String s2=”aaa” s1.compareTo(s2) 返回1
大于返回正数,等于返回0,小于返回负数
字符串练习
练习一:模拟trim去除字符串两端空格
public static String myTrim(String str){
int start=0,end=str.length()-1;
while(start<=end && str.charAt(start)==' ')
start++;
while(start<=end && str.charAt(end)==' ')
end--;
return str.substring(start, end+1);
}
练习二、获取一个字符串在另外一个字符串中出现的次数
public static int getSubCount(String str,String key){
int count=0, index=0;
while((index=str.indexOf(key,index))!=-1){
index=index+key.length();
count ++;
}
return count;
}