2024年5月11日发(作者:)

java 字符串检索例子

嘿,大家好!今儿咱来聊聊个有趣的话题——Java中的字符串检索。说起

这个,咱们得先从字符串检索是个啥说起。其实呢,字符串检索就是在一

段文字里头,找咱想要找的那个词儿或者句子,跟咱们小时候在课本里找

生字儿似的。

在Java里头,咱有个叫`indexOf()`的方法,就是专门用来做这个的。这

个方法能告诉咱,咱要找的那个词儿或者句子,在字符串里头是从哪儿开

始的。要是没找到呢,它就返回个-1,就像咱们在课本里没找到那个生字

儿一样。

举个栗子吧,咱有个字符串`String str = "我爱吃四川火锅和陕西肉夹

馍";`,咱想知道“四川”这两个字是从哪儿开始的。咱就可以这么写:

```java

int index = f("四川");

if (index != -1) {

n("找到啦!'四川'是从第" + index + "个字符

开始的。");

} else {

n("没找到'四川'这两个字。");

}

```

这段代码运行起来,就会告诉咱“四川”是从第3个字符开始的。为啥说

是第3个字符呢?因为字符串的索引是从0开始的,所以“我”是第0个

字符,“爱”是第1个字符,“吃”是第2个字符,“四”就是第3个字

符了。

那要是咱想知道“陕西”是从哪儿开始的呢?咱就换个词儿再调用一次

`indexOf()`方法呗:

```java

int index2 = f("陕西");

if (index2 != -1) {

n("找到啦!'陕西'是从第" + index2 + "个字符

开始的。");

} else {

n("没找到'陕西'这两个字。");

}

```

这样,咱就能知道“陕西”是从哪儿开始的了。

不过呢,要是咱想找的词儿在字符串里头不止出现一次,那咋整呢?

`indexOf()`方法还有个重载版本,能接收一个额外的参数,表示从哪个

位置开始找。咱就可以利用这个特性,找到所有的位置。

举个栗子,咱还是找“四川”这两个字,但是这次咱想知道它们都出现在

哪儿:

```java

int index = f("四川");

while (index != -1) {

n("找到啦!'四川'是从第" + index + "个字符

开始的。");

index = f("四川", index + 2); // 从上次找到的位置

后面开始继续找

}

```

这段代码会告诉咱“四川”在字符串中所有出现的位置。为啥`index + 2`

呢?因为咱已经找到了“四川”这两个字,所以下次再从这两个字后面开

始找呗。

哎呀,说了这么多,大家是不是觉得Java的字符串检索还挺有意思的?

其实呢,Java里头还有很多好玩的功能等着咱去发现呢!咱要是感兴趣的

话,就一起去探索吧!