Java入门第75课——在一个字符串中检索另外一个字符串
问题
在上一案例的基础上,检索一个字符串在另一个字符中的索引位置,即,现有字符串”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中不存在。
还没有评论,来说两句吧...