問題
在上一案例的基礎上,檢索一個字符串在另一個字符中的索引位置,即,現有字符串"I can because i think i can",檢索字符串"can"在此字符串中出現的索引位置。詳細要求如下:
1)檢索字符串"can"在此字符串中第一次出現的索引位置。
2)檢索字符串"can"在此字符串中最後一次出現的索引位置。
3)從索引位置爲6開始,檢索字符串"can"在此字符串第一次出現的索引位置。
4)檢索字符串"Can"在此字符串中第一次出現的索引位置。注意字符串"Can"中的字母C爲大寫。
方案
1)定義字符串對象str,初始化爲"I can because i think i can",接着,調用indexOf方法,檢索字符串"can"在此字符串中第一次出現的索引位置。該方法聲明如下:
int indexOf(String str)
以上indexOf方法表示在字符串中索引str,返回其第一齣現的索引位置,如果找不到則返回-1。
2)調用lastIndexOf的方法,檢索字符串"can"在此字符串中最後一次出現的索引位置。該方法聲明如下:
int lastIndexOf(String str)
lastIndexOf方法和indexOf方法類似,只是當str在字符串中多次出現時,將返回最後一個出現的索引位置,如果找不到則返回-1.
3)調用重載的indexOf方法,從索引位置爲6開始,檢索字符串"can"在此字符串中第一次出現的索引位置。該方法聲明如下:
int indexOf(String str,int fromIndex)
以上方法類似indexOf(String),但是是從字符串的fromIndex位置開始檢索。
4)調用indexOf(String str)檢索字符串"Can"在此字符串中第一次出現的索引位置,如果找不到則返回-1。
步驟
實現此案例需要按照如下步驟進行。
步驟一:使用indexOf(String str)
首先,在類TestString中,添加測試方法testIndexOf。在該方法中,首先定義字符串對象str,初始化爲"I can because i think i can",接着,調用indexOf方法,檢索字符串"can"在字符串str中第一次出現的索引位置。代碼如下所示:
package day01;
import org.junit.Test;
public class TestString{
/**
*在一個字符串中檢索另外一個字符串
*/
@Test
public void testIndexOf(){
String str="I can because i think i can";
int index=str.indexOf("can");
System.out.println(index);//2
}
}
運行testIndexOf方法,控制檯輸出結果如下:
2
從輸出結果可以看出,字符串"can"在字符串中第一次出現的索引位置爲2。
步驟二:使用lastIndexOf方法
調用lastIndexOf的用法,檢索字符串"can"在字符串str中最後一次出現的索引位置。代碼如下所示:
package day01;
import org.junit.Test;
public class TestString{
/**
*在一個字符串中檢索另外一個字符串
*/
@Test
public void testIndexOf(){
String str="I can because i think i can";
int index=str.indexOf("can");
System.out.println(index);//2
index=str.lastIndexOf("can");
System.out.println(index);//24
}
}
運行testIndexOf方法,控制檯輸出結果如下:
2
24
從輸出結果可以看出,字符串"can"在str中最後一次出現的索引位置爲24。
步驟三:使用indexOf(String str,int fromIndex)
調用重載的indexOf方法,從索引位置爲6開始,檢索字符串"can"在字符串str中第一次出現的索引位置。代碼如下所示:
package day01;
import org.junit.Test;
public class TestString{
/**
*在一個字符串中檢索另外一個字符串
*/
@Test
public void testIndexOf(){
String str="I can because i think i can";
int index=str.indexOf("can");
System.out.println(index);//2
index=str.lastIndexOf("can");
System.out.println(index);//24
index=str.indexOf("can",6);
System.out.println(index);//24
}
}
運行testIndexOf方法,控制檯輸出結果如下:
2
24
24
從輸出結果可以看出,從索引位置6開始,字符串"can"在str中第一次出現的索引位置爲24。
步驟四:使用indexOf(String str),要檢索的字符串不存在的情況
調用indexOf(String str)檢索字符串"Can"在此字符串中第一次出現的索引位置,如果找不到則返回-1。代碼如下所示:
package day01;
import org.junit.Test;
public class TestString{
/**
*在一個字符串中檢索另外一個字符串
*/
@Test
public void testIndexOf(){
String str="I can because i think i can";
int index=str.indexOf("can");
System.out.println(index); //2
index=str.lastIndexOf("can");
System.out.println(index); //24
index=str.indexOf("can",6);
System.out.println(index); //24
index=str.indexOf("Can");
System.out.println(index); //-1
}
}
運行testIndexOf方法,控制檯輸出結果如下:
2 24 24 -1
從輸出結果可以看出,控制檯的輸出結果爲-1,說明字符串"Can"在str中不存在。