亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java? 教程(操縱字符串中的字符)

Corwien / 2352人閱讀

操縱字符串中的字符

String類有許多方法可用于檢查字符串的內(nèi)容,查找字符串中的字符或子字符串,更改大小寫以及其他任務(wù)。

按索引獲取字符和子字符串

你可以通過調(diào)用charAt()訪問器方法獲取字符串中特定索引處的字符,第一個(gè)字符的索引是0,而最后一個(gè)字符的索引是length()-1,例如,以下代碼獲取字符串中索引9處的字符:

String anotherPalindrome = "Niagara. O roar again!"; 
char aChar = anotherPalindrome.charAt(9);

索引從0開始,因此索引9處的字符為"O",如下圖所示:

如果要從字符串中獲取多個(gè)連續(xù)字符,可以使用substring方法,substring方法有兩個(gè)版本,如下表所示:

方法 描述
String substring(int beginIndex, int endIndex) 返回一個(gè)新字符串,該字符串是此字符串的子字符串;
子字符串從指定的beginIndex開始,并擴(kuò)展到索引endIndex - 1處的字符。
String substring(int beginIndex) 返回一個(gè)新字符串,該字符串是此字符串的子字符串;
integer參數(shù)指定第一個(gè)字符的索引;
這里,返回的子字符串延伸到原始字符串的末尾。

以下代碼從Niagara palindrome獲取從索引11延伸到但不包括索引15的子字符串,這是“roar”一詞:

String anotherPalindrome = "Niagara. O roar again!"; 
String roar = anotherPalindrome.substring(11, 15);

操縱字符串的其他方法

以下是其他幾種用于操作字符串的String方法:

方法 描述
String[] split(String regex)
String[] split(String regex, int limit)
搜索字符串參數(shù)(包含正則表達(dá)式)指定的匹配項(xiàng),并相應(yīng)地將此字符串拆分為字符串?dāng)?shù)組;
可選的整數(shù)參數(shù)指定返回?cái)?shù)組的最大大小,正則表達(dá)式在標(biāo)題為“正則表達(dá)式”的課程中介紹。
CharSequence subSequence(int beginIndex, int endIndex) 返回一個(gè)索引從beginIndexendIndex - 1構(gòu)造的新字符序列。
String trim() 返回刪除了前面和后面的空格的此字符串的副本。
String toLowerCase()
String toUpperCase()
返回轉(zhuǎn)換為小寫或大寫的此字符串的副本,如果不需要轉(zhuǎn)換,則這些方法返回原始字符串。
在字符串中搜索字符和子字符串

以下是一些用于在字符串中查找字符或子字符串的其他String方法,String類提供訪問器方法,返回特定字符或子字符串在字符串中的位置:indexOf()lastIndexOf(),indexOf()方法從字符串的開頭向后搜索,而lastIndexOf()方法從字符串的末尾向前搜索,如果未找到字符或子字符串,indexOf()lastIndexOf()將返回-1。

String類還提供了一個(gè)搜索方法contains,如果字符串包含特定的字符序列,則返回true,當(dāng)你只需知道字符串包含字符序列但使用精確位置并不重要時(shí),請(qǐng)使用此方法。

下表描述了各種字符串搜索方法。

方法 描述
int indexOf(int ch)
int lastIndexOf(int ch)
返回指定字符的第一次(最后一次)出現(xiàn)的索引。
int indexOf(int ch, int fromIndex)
int lastIndexOf(int ch, int fromIndex)
返回指定字符的第一次(最后一次)出現(xiàn)的索引,從指定的索引向前(向后)搜索。
int indexOf(String str)
int lastIndexOf(String str)
返回指定子字符串的第一次(最后一次)出現(xiàn)的索引。
int indexOf(String str, int fromIndex)
int lastIndexOf(String str, int fromIndex)
返回指定子字符串的第一次(最后一次)出現(xiàn)的索引,從指定的索引向前(向后)搜索。
boolean contains(CharSequence s) 如果字符串包含指定的字符序列,則返回true
CharSequence是一個(gè)由String類實(shí)現(xiàn)的接口,因此,你可以使用字符串作為contains()方法的參數(shù)。
將字符和子字符串替換到字符串中

String類只有很少的方法可以將字符或子字符串插入到字符串中,通常,不需要它們:你可以通過連接從字符串中刪除的子字符串以及要插入的子字符串來創(chuàng)建新字符串。

但是,String類確實(shí)有四種方法可以替換找到的字符或子字符串,它們是:

方法 描述
String replace(char oldChar, char newChar) 返回一個(gè)新字符串,該字符串是使用newChar替換此字符串中出現(xiàn)的所有oldChar
String replace(CharSequence target, CharSequence replacement) 將此字符串中與文字target序列匹配的每個(gè)子字符串替換為指定的文字replacement序列。
String replaceAll(String regex, String replacement) 將與給定正則表達(dá)式匹配的字符串的每個(gè)子字符串替換為給定的replacement。
String replaceFirst(String regex, String replacement) 將匹配給定正則表達(dá)式的字符串的第一個(gè)子字符串替換為給定的replacement。
一個(gè)例子

下面的類Filename演示了如何使用lastIndexOf()substring()來隔離文件名的不同部分。

以下Filename類中的方法不執(zhí)行任何錯(cuò)誤檢查,并假設(shè)其參數(shù)包含完整的目錄路徑和帶擴(kuò)展名的文件名,如果這些方法是生產(chǎn)代碼,他們將驗(yàn)證他們的參數(shù)是否正確構(gòu)造。
public class Filename {
    private String fullPath;
    private char pathSeparator, 
                 extensionSeparator;

    public Filename(String str, char sep, char ext) {
        fullPath = str;
        pathSeparator = sep;
        extensionSeparator = ext;
    }

    public String extension() {
        int dot = fullPath.lastIndexOf(extensionSeparator);
        return fullPath.substring(dot + 1);
    }

    // gets filename without extension
    public String filename() {
        int dot = fullPath.lastIndexOf(extensionSeparator);
        int sep = fullPath.lastIndexOf(pathSeparator);
        return fullPath.substring(sep + 1, dot);
    }

    public String path() {
        int sep = fullPath.lastIndexOf(pathSeparator);
        return fullPath.substring(0, sep);
    }
}

這是FilenameDemo程序,它構(gòu)造一個(gè)Filename對(duì)象并調(diào)用它的所有方法:

public class FilenameDemo {
    public static void main(String[] args) {
        final String FPATH = "/home/user/index.html";
        Filename myHomePage = new Filename(FPATH, "/", ".");
        System.out.println("Extension = " + myHomePage.extension());
        System.out.println("Filename = " + myHomePage.filename());
        System.out.println("Path = " + myHomePage.path());
    }
}

以下是該程序的輸出:

Extension = html
Filename = index
Path = /home/user

如下圖所示,我們的extension方法使用lastIndexOf來定位文件名中最后一次出現(xiàn)的點(diǎn)(.),然后substring使用lastIndexOf的返回值來提取文件擴(kuò)展名 — 也就是說,從字符串的點(diǎn)到結(jié)尾的子字符串。此代碼假定文件名中包含點(diǎn),如果文件名沒有點(diǎn),則lastIndexOf返回-1,并且substring方法拋出StringIndexOutOfBoundsException。

另請(qǐng)注意,擴(kuò)展方法使用dot + 1作為substring的參數(shù),如果點(diǎn)字符(.)是字符串的最后一個(gè)字符,則dot + 1等于字符串的長(zhǎng)度,則大于字符串中的最大索引(因?yàn)樗饕龔?開始),這是substring的合法參數(shù),因?yàn)樵摲椒ń邮艿乃饕扔诘淮笥谧址拈L(zhǎng)度,并將其解釋為“字符串的結(jié)尾”。

上一篇:在數(shù)字和字符串之間轉(zhuǎn)換 下一篇:比較字符串和字符串的部分

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/72911.html

相關(guān)文章

  • Java? 教程(在數(shù)字和符串之間轉(zhuǎn)換)

    在數(shù)字和字符串之間轉(zhuǎn)換 將字符串轉(zhuǎn)換為數(shù)字 通常,程序以字符串對(duì)象中的數(shù)字?jǐn)?shù)據(jù)結(jié)束 — 例如,用戶輸入的值。 包裝原始數(shù)字類型(Byte、Integer、Double、Float、Long和Short)的Number子類每個(gè)都提供一個(gè)名為valueOf的類方法,該方法將字符串轉(zhuǎn)換為該類型的對(duì)象。下面是一個(gè)示例ValueOfDemo,它從命令行獲取兩個(gè)字符串,將它們轉(zhuǎn)換為數(shù)字,并對(duì)值執(zhí)行算術(shù)運(yùn)算: ...

    Andrman 評(píng)論0 收藏0
  • Java? 教程(目錄)

    Java? 教程 Java教程是為JDK 8編寫的,本頁面中描述的示例和實(shí)踐沒有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買。 入門 介紹Java技術(shù)和安裝Java開發(fā)軟件并使用...

    lifesimple 評(píng)論0 收藏0
  • Java學(xué)習(xí)筆記3-Number,String,StringBuilder類

    摘要:創(chuàng)建字符串教程字符串長(zhǎng)度用于獲取有關(guān)對(duì)象的信息的方法稱為訪問器方法。類在中被提出,它和之間的最大不同在于的方法不是線程安全的不能同步訪問。然而在應(yīng)用程序要求線程安全的情況下,則必須使用類。 一般地,當(dāng)需要使用數(shù)字的時(shí)候,我們通常使用內(nèi)置數(shù)據(jù)類型,如:byte、int、long、double 等。 在實(shí)際開發(fā)過程中,我們經(jīng)常會(huì)遇到需要使用對(duì)象,而不是內(nèi)置數(shù)據(jù)類型的情形。為了解決這個(gè)問題,...

    pkhope 評(píng)論0 收藏0
  • Java? 教程(I/O流)

    I/O流 I/O流表示輸入源或輸出目標(biāo),流可以表示許多不同類型的源和目標(biāo),包括磁盤文件、設(shè)備、其他程序和內(nèi)存數(shù)組。 流支持許多不同類型的數(shù)據(jù),包括簡(jiǎn)單字節(jié)、原始數(shù)據(jù)類型、本地化字符和對(duì)象,有些流只是傳遞數(shù)據(jù),其他人以有用的方式操縱和轉(zhuǎn)換數(shù)據(jù)。 無論它們?nèi)绾卧趦?nèi)部工作,所有流都為使用它們的程序提供相同的簡(jiǎn)單模型:流是一系列數(shù)據(jù),程序使用輸入流從源讀取數(shù)據(jù),一次一個(gè)條目: showImg(https:...

    JerryWangSAP 評(píng)論0 收藏0
  • 一文解析SQLServer數(shù)據(jù)庫(kù)

    摘要:表名列名列名列名值值值刪楷體刪除數(shù)據(jù)是最簡(jiǎn)單的語句了,只需要指定表名和查詢條件就行。列名統(tǒng)計(jì)當(dāng)前條件下查詢出的數(shù)據(jù)的數(shù)量。 一文解析SQLServer數(shù)據(jù)庫(kù) 目錄...

    syoya 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<