Java字符串地查找操作

2020-12-27 米粒教育

在一個字符串中查找字符或子串是經常使用的操作。String類提供了兩種查找字符串的方法,分別是indexOf()和lastIndexOf(),這兩種方法都返回待查找字符或子串在字符串的起始索引位置。

int indexOf(String s)

該方法用於在字符串中查找與s字符串匹配的子串,若發現匹配的子串,則返回子串的起始位置索引,如果沒有找到與s匹配的子串,返回-1。

調用語法如下:

str.indexOf(s)

其中,str是已創建的字符串對象,s待查找的字符串。

案例1創建一個字符串對象,使用indexOf()方法查找子串,如查找到子串輸出子串內容,否則輸出查找子串失敗信息。

在PbaseUnit11項目unit包下創建StringSearchSample類。代碼如下:

/**

* @Title: StringSearchSample.java

* @Packageunit

* @Description: Java基礎知識課程案例

* @author編程訓練營

* @date

* @versionV1.0

*/

packageunit;

/**

* @ClassName: StringSearchSample

* @Description: 字符串(字符串查找)案例1

* @author編程訓練營

* @date

*

*/

publicclassStringSearchSample {

/**

* @Title: main

* @Description: Java程序入口main方法

* @param@param args 參數

* @return void 返回類型

* @throws

*/

publicstaticvoidmain(String[] args) {

// 創建String對象

String szTemp = "小明正在學習Java編程";

String szSearch = "編程";

// 使用indexOf查找子串"編程"

intnIndex = szTemp.indexOf(szSearch);

// 若nIndex不等於-1,說明已查找到子串

if( nIndex != -1 )

{

// 從szTemp截取已查找到的子串

String szSub = szTemp.substring(nIndex,nIndex+szSearch.length());

// 輸出子串

System.out.println(szSub);

}

else

{

System.out.printf("沒有查找到子串:%s",szSearch);

}

}

}

程序結構分析

代碼創建了兩個String對象,一個String對象是szTemp,字符串查找操作在該字符串對象進行,一個String對象是szSearch,該字符串是待查找字符串。

使用String類的indexOf()方法在szTemp中查找szSearch,若szTemp內容包含szSearch,則查找成功。indexOf()方法返回szSearch在szTemp中的起始索引,然後使用String類的substring方法截取子串。

程序執行結果如下圖所示:

int lastIndexOf(String s)

該方法在當前字符串中查找子串s,若s多次出現在當前字符串中,該方法會返回s在當前字符串最後一次出現的索引位置。如果沒有找到s,則返回-1。

例如:

在字符串「小明正在學習Java編程,Java編程是他很喜歡的課程」中,查找子串「Java」,lastIndexOf()方法會返回最後出現「Java」的索引位置,即返回索引13。

案例2創建一個字符串對象,使用lastIndexOf()方法查找子串,如查找到子串輸出子串內容,否則輸出查找子串失敗信息。

在PbaseUnit11項目unit包下創建StringSearchSample2類。代碼如下:

/**

* @Title: StringSearchSample2.java

* @Packageunit

* @Description:Java基礎知識課程案例

* @author編程訓練營

* @date

* @versionV1.0

*/

packageunit;

/**

* @ClassName: StringSearchSample2

* @Description: 字符串(字符串查找)案例2

* @author編程訓練營

* @date

*

*/

publicclassStringSearchSample2 {

/**

* @Title: main

* @Description: Java程序入口main方法

* @param@param args 參數

* @return void 返回類型

* @throws

*/

publicstaticvoidmain(String[] args) {

// 創建String對象

String szTemp = "小明正在學習Java編程,Java編程是他很喜歡的課程";

String szSearch = "Java";

// 使用lastIndexOf查找子串"編程"

intnIndex = szTemp.lastIndexOf(szSearch);

// 若nIndex不等於-1,說明已查找到子串

if( nIndex != -1 )

{

// 輸出子串的索引位置

System.out.println("查找子串索引位置為:" + nIndex);

// 從szTemp截取已查找到的子串

String szSub = szTemp.substring(nIndex,nIndex+szSearch.length());

// 輸出子串

System.out.println(szSub);

}

else

{

System.out.printf("沒有查找到子串:%s",szSearch);

}

}

}

程序結構分析

代碼使用lastIndexOf()方法查找子串szSearch,szSearch在szTemp出現兩次,lastIndexOf()方法會返回szSearch最後一次出現的位置索引。

程序執行結果如下圖所示:

相關焦點

  • 淺談Java中字符串的初始化及字符串操作類
    對於這種直接通過雙引號""聲明字符串的方式, 虛擬機首先會到字符串常量池中查找該字符串是否已經存在. 如果存在會直接返回該引用, 如果不存在則會在堆內存中創建該字符串對象, 然後到字符串常量池中註冊該字符串。在本案例中虛擬機首先會到字符串常量池中查找是否有存在"hello"字符串對應的引用.
  • 跟我學java編程—Java字符串類型
    String類的方法String類提供了多個方法,用於完成對字符串查找、替換、比較、連接、複製、分割等操作。(int ch)方法說明:查找字符串是否包含ch字符,返回字符的整型數值。Equals(szWelcome2);示例2:String類的查找及比較操作在D盤Java目錄下,新建「StringFindSample.java」文件。
  • 跟我學java編程—認識java語言的字符類型
    輸出字符編碼表中對應的字符。示例1:字符賦值並輸出到命令行窗口在D盤Java目錄下,新建「CharSample.java」文件。用記事本打開「CharSample.java」文件,輸入以下代碼:編譯「CharSample.java」文件,在命令行窗口輸入「javac CharSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java CharSample」運行Java程序,命令行窗口顯示如下信息:
  • 一文讀懂 Java 字符串相關知識點和常見面試題
    /最後一次在字符串中出現的位置:indexOf() lastIndexOf()package com.mpp.string; public class StringDemo2 { public static void main(String[] args) { String str = new String("趙客縵胡纓 吳鉤胡纓霜雪明"); //查找胡在字符串中第一次出現的位置
  • 麥子java黑馬程式設計師前輩之路入門基礎java數組折半查找案例例題
    在了解java數組排序功能塊代碼的操作後下面咱們再來分享下關於給定一個元素,然後在數組中查找元素是否存在,如果存在則輸出對應數組元素下的角標,如果不存在則輸出-1;java在數組中查找某一個元素案例上圖所示,在給定的數組裡查找對應元素的角標位置數,上圖是查找存在的元素位置,如過查找的元素不存在數組裡頭編譯會如何?
  • Java File類(文件操作類)詳解
    在 Java 中,File 類是 java.io 包中唯一代表磁碟文件本身的對象,也就是說,如果希望在程序中操作文件和目錄,則都可以通過 File
  • 如何在Java中輕鬆地將字符串轉換為Integer
    在Java中有兩種將字符串轉換為Integer的方法, 使用Integer.parseInt()到Integer的字符串 使用Integer.value eOf()到Integer的字符串假設您有一個字符串-strTest-包含一個數值。
  • JAVA基礎之字符串替換的講解
    JAVA基礎之字符串替換的講解 本文介紹的是關於java程序設計語言中字符串的講解,希望對你有幫助,一起來看。下面介紹java中的字符串替換。最近在java開發的過程中用到了字符串的替換,本來覺得挺簡單的問題,卻總也解決不了。字符串明明是替換了,卻總也輸出不了正確結果,很是鬱悶,到底是為什麼呢?
  • Java 查找替換Excel數據
    概述本文介紹如何在Java程序中來查找並替換Excel中的數據。替換數據時,可設置新數據的樣式/格式等。使用工具工具:Free Spire.XLS for Java (免費版)註:可通過e-iceblue中文官網在Java產品板塊下載包,並解壓將lib文件夾下的jar文件導入java程序;或者通過maven倉庫下載導入。Jar導入效果:
  • Java的正則表達式和捕獲組
    Matcher 類:Matcher 對象是對輸入字符串進行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構造方法。你需要調用 Pattern 對象的 matcher 方法來獲得一個 Matcher 對象。PatternSyntaxException:PatternSyntaxException 是一個非強制異常類,它表示一個正則表達式模式中的語法錯誤。
  • Java實現全形和半角字符相互轉換
    Java實現全形和半角字符相互轉換1 中文全形和半角輸入的區別      在計算機屏幕上,一個漢字要佔兩個英文字符的位置,人們把一個英文字符所佔的位置稱為」半角」,相對地把一個漢字所佔的位置稱為」全形」。2 什麼是半角和全形?2.1 全形      指一個字符佔用兩個標準字符位置。      全形指一個字符佔用兩個標準字符位置的狀態。
  • Excel之四大字符處理函數(查找/替換/拼接/截取),附詳細操作實例
    ① 字符串查找——Ctrl+F(字符串匹配&單元格匹配)② 字符串替換——Ctrl+H & Replace,逐一講解以上函數,工具重在實踐,跟著我實操起來吧① Ctrl+F ——默認字符匹配快速調出查找框,默認是字符匹配,而不是單元格匹配,比如下圖搜索"鞋",會查詢到3組結果
  • python中字符串的基本操作匯總
    字符串是文本操作的核心,在python中字符串是string類的實例,在string模塊中,定義了很多的常量>>> import string>>> string.ascii_letters'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
  • php字符串常用處理,運算符和幾個常用的字符串函數
    本篇將介紹php字符串常用處理,運算符和幾個常用的字符串函數。有興趣的朋友可以了解一下!php是一門很受歡迎的程式語言之一,由於它的語法簡單易學,迎來了一大批的自學者,小編就是其中一個。php確實相當於其它語言(java、c#等等)比較簡單,但是對一個毫無程式語言基礎的人來說,還是有一定難度的。
  • JAVA學習冊|字符編碼|GBK(二)
    從已知出發,GBK是一種編碼方式,兩個字節的編碼,一個碼對應一個中文字符。順著這個思路,我們找到了GBK.java 這個類,裡面做了字符的映射關係,然後在裡面,我們看到了 DoubleByte.java這個類,通過這個類名,我們可以猜測,這是做編碼和解碼的實現類。
  • 盤點Python中字符串的常用操作
    字符串的相加操作,也可以理解為拼接操作。例如:a = 'Hello' + ' World'print(a) # Hello World# 也可以寫成a = 'Hello' ' World'print(a) # Hello World字符串的乘法操作, 可以理解為克隆操作,字符串只能與整數(n)想乘,代表克隆n個字符串。
  • 跟我學java編程—Java的Scanner類
    Scanner類的初始化聲明一個scanner變量,並用new運算符實例化Scanner,實例化Scanner時,需要傳入System.in對象,Scanner通過傳入的System.in獲取用戶輸入,並對用戶輸入的字符進行處理,屏蔽了獲取用戶輸入的複雜操作。
  • Java之字符串替換replace()
    replace(char oldChar, char newChar)返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有
  • 一文讓你明白 Java 字節碼
    字面量如文本字符串,java中聲明為final的常量值等等,而符號引用如類和接口的全局限定名,欄位的名稱和描述符,方法的名稱和描述符。為什麼需要類和接口的全局限定名呢?系統引用類或者接口的時候不是通過內存地址進行操作嗎?
  • java之字符緩衝輸出流,BufferedWriter的簡單介紹
    各位小夥伴們,大家好在之前的文章中小編介紹了字節緩衝流的相關知識,這次小編要介紹的是字符緩衝輸出流,BufferedWriter,具體如下:java.io.BufferedWriter extends Writer