Java中substring用法詳解

一、什麼是substring方法

Java中的substring方法用於從字符串中獲取子字符串。它的語法方式為:

public String substring(int beginIndex)
public String substring(int beginIndex, int endIndex)

其中,第一個參數beginIndex表示子字符串的開始位置,第二個參數endIndex表示子字符串的結束位置(注意,不包含endIndex所在的字符)。如果只提供一個參數,則返回從該位置開始到字符串末尾的子字符串。

例如:

String str = "abcdefg";
String newStr1 = str.substring(2);  // newStr1的值為"cdefg"
String newStr2 = str.substring(1, 4);  // newStr2的值為"bcd"

二、關於參數的取值

在使用substring方法時,需要注意參數的取值範圍。如果提供的beginIndex小於0或大於等於字符串長度,則會拋出IndexOutOfBoundsException異常;如果提供的endIndex小於beginIndex,則會返回空字符串。

例如:

String str = "abcdefg";
String newStr1 = str.substring(0, -1);  // 會拋出IndexOutOfBoundsException異常
String newStr2 = str.substring(2, 1);  // 返回空字符串

三、使用substring方法的場景

1. 提取字符串的一部分

當需要從一個字符串中提取特定的子字符串時,可以使用substring方法。例如,從一個文件路徑中提取文件名:

String filePath = "/root/user/demo.txt";
int index = filePath.lastIndexOf("/");
String fileName = filePath.substring(index + 1);  // fileName的值為"demo.txt"

2. 拼裝字符串

當需要按照一定的格式拼裝一些字符串時,可以使用substring方法。例如,拼接一個URL:

String protocol = "https";
String host = "www.google.com";
String path = "/search";
String url = protocol + "://" + host + path;
String newUrl = url.substring(0, url.lastIndexOf("/")) + "/image";  // newUrl的值為"https://www.google.com/image"

3. 對字符串進行截斷

當字符串過長時,需要對其進行截斷顯示,可以使用substring方法。例如,顯示一行固定長度的日誌:

String log = "2021-01-01 12:00:00 [INFO] This is a log message.";
int maxLength = 30;
String displayLog;
if (log.length() > maxLength) {
    displayLog = log.substring(0, maxLength - 3) + "...";
} else {
    displayLog = log;
}
System.out.println(displayLog);  // 輸出"2021-01-01 12:00:00 [INFO] T..."

四、總結

Java中的substring方法是一個非常常用的字符串處理方法,可以用來提取子字符串、拼裝字符串、截斷字符串等。在使用該方法時,需要注意參數的取值範圍,以避免拋出異常或獲取到不正確的結果。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/153430.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-14 03:06
下一篇 2024-11-14 03:06

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論