Java 的字元串API(部分)及字元串處理

来源:https://www.cnblogs.com/mereder/archive/2018/07/10/9291723.html
-Advertisement-
Play Games

最近在看Robert Sedgewick 和Kevin Wayne寫的演算法(第四版) ,看到字元串部分,正好給出了Java字元串的API(部分,也是直接自己接觸的較為常用的) 覺得自己也應該好好總結一些,首先給一點簡單的,之後看到第五章部分,有關字元串的內容再補上。 表 Java 字元串API(部分 ...


最近在看Robert Sedgewick 和Kevin Wayne寫的演算法(第四版) ,看到字元串部分,正好給出了Java字元串的API(部分,也是直接自己接觸的較為常用的)

覺得自己也應該好好總結一些,首先給一點簡單的,之後看到第五章部分,有關字元串的內容再補上。

 

表 Java 字元串API(部分)

Public class String

 

String()

創建一個空字元串

int

length()

字元串長度

int

charAt(int i)

第i個字元

int

indexOf(String p)

p第一次出現的位置(無則 -1)

int

indexOf(String p,int i)

p在i個字元後第一次出現的位置(無則-1)

String

concat(String t)

將t附在字元串末尾

String

substring(int i,int j)

該字元串的子字元串(從第i個到j-1個)

String[]

split(String delim)

使用delim分隔符切割字元串

int

compareTo(String t)

比較字元串

Boolean

equals(String t)

該字元串的值和t的值是否相同

int

hashCode

散列值

 

字元串操作舉例

1 String a = "now is ";
2 String b = "the time ";
3 String c = "to";

 

方法  返回值
a.length()  7
a.charAt(4)  i
a.concat(c)  "now is to"
a.indexOf("is")  4
a.substring(2,5)  "w i"
a.split(" ")[0]  "now"
a.split(" ")[1]  "is"
b.equals(c)  false

 

 

 

 

 

 

 

 

其中 “+” 運算符是可以代替concat()方法的。

還有一些高級的用法,比如 split()方法 的參數可以是 正則表達式 

典型的字元串處理代碼中split()的參數是“\\s+”  表示“一個或多個製表符、空格、換行符或回車”

 

典型字元串處理代碼如下:

任務一:判斷字元串是否是一條迴文

1 public static boolean isPalindrome(String s){
2         int N = s.length();
3         for (int i = 0; i < N / 2; i++) {
4             if (s.charAt(i) != s.charAt(N-1-i))
5                 return false;
6         }
7         return true;
8     }

任務二:從一個命令行參數中提取文件名和擴展名

1 String s = args[0];
2 int dot = s.indexOf(".");
3 String base = s.substring(0,dot);
4 String extension = s.substring(dot+1,s.length());

任務三:列印出標準輸入中所有含有通過命令行指定的字元串的行

1 String query = args[0];
2 while (!StdIn.isEmpty()){
3   String s = StdIn.readLine();
4    if(s.contains(query)) StdOut.println(s);
5 }

任務四:以空白字元為分隔符從StdIn中創建一個字元串數組

1 String input = StdIn.readAll();
2 String[] words = input.split("\\s+");

任務五:檢查一個字元串數組中的元素是否已按照字母表順序排序

1 public boolean isSorted(String[] a){
2         for (int i = 1 ; i < a.length() ; i++) {
3             if (a[i-1].compareTo(a[i]) > 0)
4                 return false;
5         }
6         return true;
7     }

 

 

 

ps:東西到是沒多少,這個編輯起來好費勁啊.....

 

 

 

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Python學習之路—2018/7/10 博客開發項目流程 ​ 一般來說,一個項目的開發流程分為:項目需求、設計表結構、功能開發、測試功能、產品上線,本次學習以博客園為藍本進行開發。 1.項目需求 博客的開發的需求主要有以下幾點: 基於auth模塊和Ajax實現登錄驗證 基於forms組件和Ajax ...
  • 因為Python是跨平臺的,它可以運行在Windows、Mac和各種Linux/Unix系統上。在Windows上寫Python程式,放到Linux上也是能夠運行的。 要開始學習Python編程,首先要把Python安裝到電腦里。安裝後,可以得到Python解釋器(就是負責運行Python程式的), ...
  • 一直想瞭解下Python,今兒在外面辦事排隊的時候,打開了廖老師的官網,找到了Python教程。雖然只是一篇關於Python的簡介,但是通過將Python的特性與C進行對比,很生動地歸納了Python的一些特性。因為之前花過時間學習C,所以能夠很容易地體會到Python的特性。上學期通過廖老師的教程 ...
  • 最近很多朋友向我咨詢關於高可用的方案的優缺點以及如何選擇合適的方案線上使用,剛好最近在給宜人貸,光大銀行做企業內訓的時候也詳細講過,這裡我再整理髮出來,供大家參考,如有不妥之處,歡迎批評指正,也歡迎推薦更好的技術方案。不廢話了,來看看方案吧~ 總綱: Redis常見的幾種主要使用方式: Redis ...
  • java的基本數據類型中,boolean只有兩種狀態,預設值為false.取值範圍是{true,false},理論上占1bit,實際上: 1.單個的boolean 類型變數在編譯的時候是使用的int 類型。 boolean a=true;//這個a在JVM中占4個位元組即:32位。 2.boolean ...
  • 補充: 隊列的封裝: ...
  • R語言類 R語言的類有S3類和S4類,S3類用的比較廣,創建簡單粗糙但是靈活,而S4類比較精細,具有跟C++一樣嚴格的結構。這裡我們主要講S3類。 S3類的結構 S3類內部是一個list,append某個list類名稱,就能成為該類。list裡面的內容就是我們所說的屬性. 首先創建一個list 獲得 ...
  • 一、結論 雙重校驗鎖的單例模式代碼如下: public class Singleton { private static Singleton singleton; private Singleton() {} public static Singleton getSingleton() { if ( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...