黑马程序员技术交流社区

标题: String常用类知识汇总 [打印本页]

作者: 淡定哥    时间: 2013-5-23 13:15
标题: String常用类知识汇总
String 类的常用类
String类适用于描述字符串事物,一旦被创建就不能被改变
1.获取
1.1 字符串中包含的字符数,也就是字符串的长度
    int  length(); 获取长度
1.2根据位置获取位置上的某个字符。
    char chatAt(int index);
1.3根据字符获取该字符在字符串的位置
    intindexOf(int ch);返回的是ch在字符串第一次出现的位置
int indexOf(int ch,int fromIndex); 从fromIndex指定位置开始,获取ch在字符串中出现的位置
int lastIndexOf(int ch);从后往前索引查找
int indexOf(String str);返回的是str在字符串第一次出现的位置
int indexOf(String str,int fromIndex); 从fromIndex指定位置开始,获取str在字符串中出现的位置
2.判断
2.1 字符串中是否包含某个字符
    booleancontains(str);
特殊之处:indexOf(str);可以索引str第一次出现的位置,如果返回-1,表示str不在字符串中存在,所以也可以用于指定字符串的判断是否包含
if(str.indexOf(“aa”)!=-1)就是包含
此方法即可以判断又可以获取出现的位置
2.2字符串中是否有内容
    BooleanisEmpty();原理是判断字符串长度是否为0
2.3字符串中是否以指定内容开头
    boolean  startsWith(str);
2.4字符串中是否以指定内容结尾
    boolean  endsWith(str); 用于判断文件的扩展名
2.5判断字符串内容是否相同。复写了object类中的equals方法。
    booleanequals(str);
2.6判断内容是否相同,并忽略大小写
    booleanequalsIgnoreCase();
3.转换
3.1将字符数组转换成字符串
      构造函数:String (char[])
           String (char[],offset,count):将字符数组中的一部分转换成字符串
      静态方法:static String copyValuesOf(char[]);
           copyValuesOf(char[] data,int offset,intcount)
           static String valuesOf(char[]);
3.2将字符串转换成字符数组**
      char[] toCharArray();
3.3将字节数组转换成字符串
      String (byte[])
      String(byte[],offset,count):将字符数组中的一部分转换成字符串
3.4将字符串转换成字节数组
      byte[] getBytes();
3.5 将基本的数据类型转换成字符串
      static String valuesOf(int)
static String valuesOf(double)
特殊:字符串和字节数组在转换过程中,是可以指定编码表的!
将字符串进行反转的实例化操作
    /**
* 将字符串(从指定的start到指定的end)进行反转//要全转字符串只要(reverseString(s,0,s.length-1))
     * 1.将字符串转换成数组
     * 2.将数组进行反转
     * 3.将数组转换成字符串
     *
     */
public staticString reverseString(String s,int start,intend){
    char []ch=s.toCharArray();
    reverse(ch,start,end);   
    return newString(ch);
}   
private static voidreverse(char[] arr,int x,int y){//x,y是角标
    for(intstart=x,end=y-1;start<end;start++,end--){
        swap(arr,start,end);
    }
}
private static voidswap(char[] arr,intstart,int end){
    char temp= arr[start];
    arr[start]=arr[end];
    arr[end]=temp;   
}
4.替换       String replace(oldchar,newchar);
5.切割  String[] split(regex);regex 是切割符
6.获取。获取字符串中的一部分
      String substring (begin):从begin到字符串的结尾处
      String substring (begin,end):包含begin不包含end(str.length)
实例1:获取一个字符串在另一个字符串中出现的次数
* 1.定义一个计数器
* 2.获取str第一次出现的位置
* 3.从第一次获取位置开始往后继续获取出现的位置,出现一次计数器加1
* 4.当获取不到时,计数器就是次数(计数完成)
public static voidmain(String[] args) {
}
public static intgetStringCount(String s,String str){
    int count = 0;
    int index = 0;
    while((index=s.indexOf(str))!=-1){//当值等于-1时证明找不到了
        str=s.substring(index+str.length());//获取当前的字符串
       count++;
    }
    returncount;
}
/**实例2:定义两个字符串s1,s2(假设s1>=s2),获取s1和s2最大相同的字符串
* 思路:将短的那个字符串以递减的方式与长的字符串进行比较,
* 直到找到最大相同字符串
*/
public staticString GetMaxSubString(String s1,String s2){
    for(intx=0;x<s2.length();x++){
       for(inty=0,z=s2.length()-x;z!=s2.length()+1;y++,z++){
           String temp=s1.substring(y,z);
           if(s1.contains(temp)){
              returntemp;
           }
       }
    }
    return "";
}
7.转换,去除空格,比较
7.1将字符串转换成大写或小写
      String toUpperCase();
      String toLowerCase();
7.2将字符串两端的空格去除
      String trim();
实现函数:
public staticString my_Trim(String str){
      int start=0,end=str.length;
      while(end>=start && str.start==”  “ ){
           start++;
}
while((end>=start && str.end==”  “){
  end--;
}
return substring(strat,end);
}
7.3对两个字符串进行自然顺序的比较
      int compareTo(string);
8.StringBuffer  是一个容器
特点:1.长度可变  2.可以直接操作不同数据类型3.用toString()返回字符串
添加:StringBuffer append()  插入:StringBuffer insert(index,插入的数据);
删除:StringBuffer delete(start,end)   删除指定位置的字符StringBufferAt(index)
获取:int length();String substring();char charAt();int indexOf();intlastIndexOf();
删除:StringBuffer replace(start,end,string);    voidsetCharAt(index,char ch)
反转:StringBuffer  reverse();






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2