Java 中的字符串函數 | Java 字符串 [附示例]
已發表: 2020-12-01目錄
介紹
Java因其面向對象的編程支持和為數據類型提供的預定義函數而在程序員中贏得了很多尊重。 字符串是 java 提供的令人印象深刻的數據類型之一。
它們是不可變的,並存儲在稱為字符串常量池的單獨內存塊中的堆區域中。 java中有很多字符串的預定義函數,讓我們來探索一下吧!
職能
字符()
要訪問特定位置的字符,我們不需要循環來迭代該索引,charAt() 函數為您完成了艱苦的工作! charAt() 函數返回字符串中特定位置的字符,記住在 java 中索引從 0 開始。
此函數使用訪問修飾符定義為 public 並返回一個字符。 此方法需要一個整數作為參數,使用大於字符串長度的參數訪問函數會返回 IndexOutOfBounds 異常,這是一個運行時異常。
字符串str = “你好” ; 字符優先= str 。 字符( 0 ); 字符秒= str 。 字符( 1 ); 系統。 出來。 println(第一個+ “ ” +第二個); |
上面的代碼段將給出“h e”作為輸出,因為變量 first 被分配了字符“h”,而變量 second 被分配了字符“e”。
compareTo() 和 compareToIgnoreCase()
比較兩個字符串將無法使用 java 中的 == 運算符,因為它會檢查兩個變量的地址,如果兩個變量具有相同的地址,則返回 true。 因此 == 運算符無法比較字符串的內容,這時 compareTo() 方法開始起作用。

此公共方法需要一個字符串或一個對像作為要比較的參數,並在字典比較後返回一個整數值,請記住此方法區分大小寫。 但是我們可以使用 compareToIgnoreCase() 來進行忽略字符的小寫和大寫的比較。
字符串str1 = “你好” ; 字符串str2 = “你好” ; 字符串str3 = “你好” ; 詮釋i1 = str1 。 comapreTo(str2); 詮釋i2 = str2 。 比較(str3); 詮釋i3 = str2 。 compareToIgnoreCase(str3); 系統。 出來。 println(i1 + " " i2 + " " + i3); |
上面的代碼片段將打印 '1 0 1' 作為輸出,因為變量 i1 被賦值為 1,因為兩個字符串相等,變量 i2 被賦值為 0,因為我們正在按區分大小寫比較字符串。 同樣,變量 i3 被賦值為 1,因為我們通過忽略大小寫來比較字符串。
連接()
由於字符串是不可變的,我們不能編輯字符串的值,而是可以將更新後的值重新分配給同一個變量。 我們可以使用 concat() 方法來連接兩個字符串。 此方法需要一個字符串作為要連接的參數並返回一個新的連接字符串。
字符串s1 = “第一個” ; 字符串s2 = “秒” ; 系統。 出來。 println(s1 . concat(s2)); |
上面的代碼片段打印了一個字符串“first second”。
閱讀: JavaBeans 屬性和優勢:您應該如何利用?
包含()
檢查一個字符串是否作為另一個字符串的子序列存在現在是小菜一碟。 Java 中的 contains() 方法是一個布爾公共函數,如果字符串中存在字符序列,則返回 true,否則返回 false。 此方法需要一個字符序列作為參數,如果一個空對像作為參數傳遞,則返回 NullPointerException。
字符串s1 = “你好” ; 系統。 出來。 println(s1 . contains( “ ” ) ); //第1行 系統。 出來。 println(s1 . contains( “” )); //第2行 系統。 出來。 println(s1 .包含( null )); //第3行 |
上面的代碼片段為第 1 行打印 True,因為字符串中存在序列“the”,類似地,第 2 行打印 True,因為空序列默認返回 True。 第 3 行拋出一個 NullPointerException,因為一個 null 被傳遞了一個參數。

指數()
我們已經看到了一個 java 函數,它返回給定索引處出現的字符,但是如果我們想要給定字符第一次出現的索引怎麼辦。 放鬆,indexOf() 函數完成了這項工作。 這個函數在內部被四個不同的簽名覆蓋,讓我們來看看它們。
字符串s1 = “嘿那裡,嘿那裡,嘿那裡,嘿那裡” ; 系統。 出來。 println(s1 . indexOf( “那裡” )); //第 1 行 系統。 出來。 println(s1 . indexOf( “那裡” , 5 )); //第 2 行 系統。 出來。 println( s1.indexOf ( ' T ' )); //第 3 行 系統。 出來。 println(s1 . indexOf( ' T ' , 16 )); //第 4 行 |
在上面的代碼片段中,在 line1 中調用的函數需要一個字符串,它返回給定字符串第一次出現的起始索引,在這種情況下它打印 4。 在 line2 中調用的函數需要一個字符串和一個整數作為參數,現在這個整數是指從該索引開始搜索給定字符串的起始索引,在這種情況下它打印 37。
在 line3 中調用的函數需要一個字符作為參數,它返回給定字符的第一次出現,在這種情況下它打印 15。 類似地,第 4 行中的函數需要一個字符和一個整數。
如果整數表示起始索引,然後從該字符開始搜索給定字符,在這種情況下會打印 26。 請記住,此函數完全區分大小寫,我們可以在上面的代碼片段中看到。
是空的()
這個函數完成了一項簡單的任務,但從程序員的角度來看是一個非常有用的任務。 如果字符串為空,此佈爾函數返回 True,否則返回 False。 此函數有助於在對字符串執行任何任務之前檢查字符串是否為空,因為很少有函數會為空字符串引發異常,從而中斷執行流程。
字符串s1 = “你好” ; 字符串s2 = “” ; 系統。 出來。 println(s1 .isEmpty ()); //第1行 系統。 出來。 println(s2 .isEmpty ()); //第2行 |
上面的代碼段為 line1 打印 False,為 line2 打印 True。
長度()
找出字符串的長度不再是一項繁瑣的任務,java中的length()函數返回給定字符串的長度。 如果將空字符串作為參數傳遞,則返回零。
字符串s1 = “ abcdefghijklmnopqrstuvwxyz ” ; 系統。 出來。 println(s1 .length ()) ; |
上面的代碼打印 26。
代替()
與 indexOf() 函數只返回序列的第一次出現不同,replace() 函數用給定的新字符替換所有指定的字符並返回一個新字符串。 這個公共函數需要兩個字符,比如 c1 和 c2 作為參數。 它搜索等於 c1 的所有字符並用 c2 替換它們。
字符串s1 = “你好” ; 系統。 出來。 println(s1 .replace ( ' l ' , ' p ' ) ); |
記住這個函數是區分大小寫的,所以上面的代碼片段打印出“heppoHELLO”。
toLowerCase() 和 toUpperCase()
將字符串轉換為小寫或反之是java中的一項有趣的任務,它只需要一行代碼的藝術,而toLowerCase()、toUpperCase()函數是藝術家。
這些公共函數不需要參數,並返回一個新字符串,其中包含更新的大小寫字符。
字符串s1 = “你好” ; 系統。 出來。 println(s1 . toUpperCase()); //第1行 系統。 出來。 println(s1 . toLowerCase()); //第2行 |
在上面的代碼片段中,line2 打印“hey there”,line1 打印“hey there”。

學習: Java 中的事件處理:這是什麼以及它是如何工作的?
修剪()
刪除字符串中尾隨和前導空格的一種天真的方法是循環字符串並刪除字符(如果它是空格),但有一種最佳方法。 trim() 函數刪除字符串的所有前導和尾隨空格並返回一個新字符串。 這個公共函數不需要任何參數。
字符串s1 = “你好” ; 系統。 出來。 println(s1 .trim ()); |
上面的代碼片段打印出“Hey There”,這是修剪尾隨和前導空格後的新字符串。
結論
我們已經瀏覽了 Java 中的一些字符串函數,了解了它們的工作原理、期望值以及返回值。 探索了幾個函數的重寫簽名,通過示例代碼片段進行正確理解。 現在您已經了解了一些功能,請在需要時開始使用它們。
如果您有興趣了解有關 Java、OOP 和全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓,9 + 項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。