返回類型 | 方法 |
int |
返回指定子字符串在字符串第一次出現的索引。 |
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[] |
將此字符串轉換爲新的字符數組。 |
boolean |
當且僅當此字符串包含指定的char值序列時才返回true。 |
String |
將指定的字符串連接到該字符串的末尾。 |
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);
}