Java字符串查找的方法總結(jié)
引言
在給定的字符串中查找字符或字符串是比較常見(jiàn)的操作。字符串查找分為兩種形式:一種是在字符串中獲取匹配字符(串)的索引值,另一種是在字符串中獲取指定索引位置的字符。
根據(jù)字符查找
String 類(lèi)的 indexOf() 方法和 lastlndexOf() 方法用于在字符串中獲取匹配字符(串)的索引值。
1. indexOf() 方法
indexOf() 方法用于返回字符(串)在指定字符串中首次出現(xiàn)的索引位置,如果能找到,則返回索引值,否則返回 -1。該方法主要有兩種重載形式:
str.indexOf(value) str.indexOf(value,int fromIndex)
其中,str 表示指定字符串;value 表示待查找的字符(串);fromIndex 表示查找時(shí)的起始索引,如果不指定 fromIndex,則默認(rèn)從指定字符串中的開(kāi)始位置(即 fromIndex 默認(rèn)為 0)開(kāi)始查找。
例如,下列代碼在字符串“Hello Java”中查找字母 v 的索引位置。
String s = "Hello Java";
int size = s.indexOf('v'); // size的結(jié)果為8上述代碼執(zhí)行后 size 的結(jié)果為 8,它的查找過(guò)程如下圖所示。

例 1
編寫(xiě)一個(gè)簡(jiǎn)單的 Java 程序,演示 indexOf() 方法查找字符串的用法,并輸出結(jié)果。代碼如下:
public static void main(String[] args) {
String words = "today,monday,sunday";
System.out.println("原始字符串是'"+words+"'");
System.out.println("indexOf(\"day\")結(jié)果:"+words.indexOf("day"));
System.out.println("indexOf(\"day\",5)結(jié)果:"+words.indexOf("day",5));
System.out.println("indexOf(\"o\")結(jié)果:"+words.indexOf("o"));
System.out.println("indexOf(\"o\",6)結(jié)果:"+words.indexOf("o",6));
}運(yùn)行后的輸出結(jié)果如下:
原始字符串是'today,monday,sunday'
indexOf("day")結(jié)果:2
indexOf("day",5)結(jié)果:9
indexOf("o")結(jié)果:1
indexOf("o",6)結(jié)果:7
2. lastlndexOf() 方法
lastIndexOf() 方法用于返回字符(串)在指定字符串中最后一次出現(xiàn)的索引位置,如果能找到則返回索引值,否則返回 -1。該方法也有兩種重載形式:
str.lastIndexOf(value) str.lastlndexOf(value, int fromIndex)
注意:lastIndexOf() 方法的查找策略是從右往左查找,如果不指定起始索引,則默認(rèn)從字符串的末尾開(kāi)始查找。
例 2
編寫(xiě)一個(gè)簡(jiǎn)單的 Java 程序,演示 lastIndexOf() 方法查找字符串的用法,并輸出結(jié)果。代碼如下:
public static void main(String[] args) {
String words="today,monday,Sunday";
System.out.println("原始字符串是'"+words+"'");
System.out.println("lastIndexOf(\"day\")結(jié)果:"+words.lastIndexOf("day"));
System.out.println("lastIndexOf(\"day\",5)結(jié)果:"+words.lastIndexOf("day",5));
System.out.println("lastIndexOf(\"o\")結(jié)果:"+words.lastIndexOf("o"));
System.out.println("lastlndexOf(\"o\",6)結(jié)果:"+words.lastIndexOf("o",6));
}運(yùn)行后的輸出結(jié)果如下:
原始字符串是'today,monday,Sunday'
lastIndexOf("day")結(jié)果:16
lastIndexOf("day",5)結(jié)果:2
lastIndexOf("o")結(jié)果:7
lastlndexOf("o",6)結(jié)果:1
根據(jù)索引查找
String 類(lèi)的 charAt() 方法可以在字符串內(nèi)根據(jù)指定的索引查找字符,該方法的語(yǔ)法形式如下:
字符串名.charAt(索引值)
提示:字符串本質(zhì)上是字符數(shù)組,因此它也有索引,索引從零開(kāi)始。
charAt() 方法的使用示例如下:
String words = "today,monday,sunday"; System.out.println(words.charAt(0)); // 結(jié)果:t System.out.println(words.charAt(1)); // 結(jié)果:o System.out.println(words.charAt(8)); // 結(jié)果:n
到此這篇關(guān)于Java字符串查找的方法總結(jié)的文章就介紹到這了,更多相關(guān)Java字符串查找內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java獲得當(dāng)前時(shí)間前指定幾個(gè)小時(shí)具體時(shí)間的方法示例
這篇文章主要介紹了Java獲得當(dāng)前時(shí)間前指定幾個(gè)小時(shí)具體時(shí)間的方法,涉及java使用Calendar針對(duì)日期時(shí)間的相關(guān)運(yùn)算與轉(zhuǎn)換操作技巧,需要的朋友可以參考下2017-08-08
詳解MybatisPlus3.4版本之后分頁(yè)插件的使用
從Mybatis Plus 3.4.0版本開(kāi)始,不再使用舊版本的PaginationInterceptor ,而是使用MybatisPlusInterceptor。本文就詳細(xì)的介紹一下兩者的區(qū)別,感興趣的可以了解一下2021-11-11
JAVA?IDEA項(xiàng)目打包為jar包的步驟詳解
在Java開(kāi)發(fā)中我們通常會(huì)將我們的項(xiàng)目打包成可執(zhí)行的Jar包,以便于在其他環(huán)境中部署和運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于JAVA?IDEA項(xiàng)目打包為jar包的相關(guān)資料,需要的朋友可以參考下2024-08-08
從入門(mén)到精通詳解Java Apache POI操作Excel的實(shí)戰(zhàn)教程
在Java開(kāi)發(fā)中,Excel文件處理是一項(xiàng)常見(jiàn)且重要的技能,Apache POI作為Java操作Excel的經(jīng)典庫(kù),提供了強(qiáng)大的API支持,本文從基礎(chǔ)IO流操作Excel的局限性入手,本文詳細(xì)介紹了Apache POI的核心概念,依賴(lài)配置,以及實(shí)戰(zhàn)案例2026-05-05
詳解Idea中HTTP Client請(qǐng)求測(cè)試工具的使用
今天抽空給大家分享Idea中HTTP Client請(qǐng)求測(cè)試工具的使用,小編在這建議使用HTTP Client的Idea版本最好在2018以上,不然的話體驗(yàn)不是多好,今天就給大家介紹Idea中HTTP Client怎么使用的,感興趣的朋友跟隨小編一起看看吧2021-05-05
java8 Stream list to Map key 重復(fù) value合并到Collectio的操作
這篇文章主要介紹了java8 Stream list to Map key 重復(fù) value合并到Collectio的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
SpringSecurity 測(cè)試實(shí)戰(zhàn)
這篇文章主要介紹了SpringSecurity 測(cè)試實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

