String常用方法

            返回類型                                                            方法
                int

                    indexOf(String str)

返回指定子字符串在字符串第一次出現的索引。

                int

                    indexOf(int ch, int fromIndex)

返回指定字符第一次出現在字符串內的索引,以指定的索引搜索。

                int

                     lastIndexOf(int ch)

返回指定字符的最後一次出現在字符串中的索引。

                int

                    lastIndexOf(int ch, int fromIndex)

返回指定字符最後一次出現在字符串中的索引,從指定的索引開始向後搜索。

 

                int

                   lastIndexOf(String str)

返回指定子字符串最後一次出現的字符串中的索引

               int

                  lastIndexOf(String str, int fromIndex)

返回指定子字符串的最後一次出現的字符串中的索引,從指定索引開始向後搜索。

           String

                  replace(char oldChar, char newChar)

將原來的字符替換爲新字符

           char[]

                  toCharArray()

將此字符串轉換爲新的字符數組。

         boolean

                  contains(CharSequence s)

當且僅當此字符串包含指定的char值序列時才返回true。

         String

                  concat(String str)

將指定的字符串連接到該字符串的末尾。

        String

                  charAt(int  index)

返回指定索引處的char值。

      boolean

          equalsIgnoreCase(String anotherString)

將字符串與指定的對象比較,不考慮大小寫。       

           int

          compareTo(String str)

比較的是兩個字符串的字典順序,如果兩個字符串的字典順序相等,則返回0.不相等則返回差值。

        String

          toLowerCase()

將該字符串轉小寫字母

       String

          toUpperCase()

將該字符串轉大寫字母

equals(String str)

String 的equals包含了“==”,雙等號比較的是地址,存儲地址相同,內容肯定是相同的。

然後當地址不相同的時候,先驗證了比較對象是否是String,接着比較了兩個字符串的長度是否相同,最後循環比較了字符串的每個字符是否相等,完全相同返回true,否則 false

public boolean equals(String str){
		if(str==null){
			return false;
		}
		if(this==str){
			return true;
		}
			int n=this.value.length;
			if(n==str.value.length){
				for(int i=0; i<this.value.length;i++){
				   if(this.value[i]!=str.value[i]){
					return false;
					}
				}
				return true;
			}
		return false;
	}

startWith()-判斷前綴字符串

語法1 public boolean startsWith(String prefix)

返回值:如果參數表示的字符序列是此字符串表示的字符序列的前綴,則返回true;否則返回false。如果參數是空字符串,或者等於此String對象(用equals(Object)方法確定),則返回true。

參數:prefix爲指定的前綴。

public boolean startsWith(String prefix){
		if(prefix==null){
			return false;
		}
		if(prefix==this){
			return true;
		}
		char[] c1=value;
		char[] c2=prefix.value;
		int k=0;
		while(k<prefix.length()){
			if(c1[k]!=c2[k]){
				return false;
			}
			k++;
		}
		return true;
	}

語法2 public boolean startsWith(String prefix , int toffset)

返回值:如果參數表示的字符序列是此對象從索引toffset處開始的子字符串,則返回true;否則返回false。如果toffset爲負或大於此String對象的長度,則結果爲false;否則結果與該表達式的結果相同。

參數:prefix爲指定的前綴。

參數:toffset爲在字符串中開始查找的位置。
 

public boolean startsWith(String prefix, int toffset){
		int k=toffset;
		while(k<prefix.length()+toffset){
			if(this.value[k]!=prefix.charAt(k-toffset)){
				return false;
			}
			k++;
		}
		return true;
	}

contains(CharSequence s)

此字符串是否包含指定的char值序列

public boolean contains(String s){
		if(s==null){
			return false;
		}
		if(s==this){
			return true;
		}
		for(int i=0;i<value.length-s.length()+1;i++){
			MyString sub=substring(i,i+s.length()); //截取從i開始到i+s.length()的字符串
			if(sub.equals(s)){
				return true;
			}
		}
		return false;
	}

substring(int beginIndex, int endIndex)

截取指定字符串

1、取得的字符串長度爲:endIndex - beginIndex;

2、從beginIndex開始取,到endIndex結束,從0開始數,其中不包括endIndex位置的字符

public String substring(int beginIndex, int endIndex){//[begin,end)
		if(beginIndex>=endIndex){
            return null;
        }
        if(beginIndex<0||endIndex>value.length){
            return null;
        }
        char[] c=new char[endIndex-beginIndex];
        int index=0;
        for(int i=beginIndex;i<endIndex;i++){
            c[index++]=value[i];
        }
        return new String(c);
    }

concat(String str)

將指定的字符串連接到該字符串的末尾。

public String concat(String str){
		if(str==null){
			return null;
		}
		char[] c=new char[length()+str.length()]; 
		for(int i=0;i<length();i++){
			c[i]=value[i];
		}
		for(int i=0;i<str.length();i++){
            c[i+length()]=str.value[i];
        }
		return new String(c);
	}

replace(char oldChar, char newChar)

將原來的字符替換爲新字符

public String replace(char oldChar, char newChar){
        char[] c=Arrays.copyOf(value,value.length);
        for(int i=0;i<c.length;i++){
            if(c[i]==oldChar){
                c[i]=newChar;
            }
        }
        return new String(c);
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章