黑马程序员_java之String类

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;

    }

posted on 2013-01-28 11:28  念满  阅读(133)  评论(0编辑  收藏  举报