Java基礎之常用類(String類)

来源:https://www.cnblogs.com/wangyiyun/archive/2022/12/26/17005300.html
-Advertisement-
Play Games

String 類 定義 String 類代表字元串。Java 程式中的所有字元串字面值(如 "abc" )都作為此類的實例實現。我們可以將字元串看作是String, 但是嚴格意義上來說, String還是一個類,只是比較特殊罷了 特殊性 String 類型的變數可以引用地址 String 類型的變數 ...


String 類

  1. 定義

    • String 類代表字元串。Java 程式中的所有字元串字面值(如 "abc" )都作為此類的實例實現。我們可以將字元串看作是String, 但是嚴格意義上來說, String還是一個類,只是比較特殊罷了
  2. 特殊性

    • String 類型的變數可以引用地址
    • String 類型的變數可以直接指向常量
    • String 對象的長度是不可變的,如果兩個字元串拼接成一個字元串,其實是創建了一個新的字元串對象
    public static void main(String[] args) {
    	String str = new String();// 指向地址值 new對象相當於指向一個新地址
    	String str2 = "abc"; //指向常量 
    }
    
  3. 常用的構造方法

    • public String():空構造
    • public String(byte[] bytes):把位元組數組轉成字元串
    • public String(byte[] bytes,int index,int length):把位元組數組的一部分轉成字元串
    • public String(char[] value):把字元數組轉成字元串
    • public String(char[] value,int index,int count):把字元數組的一部分轉成字元串
    • public String(String original):把字元串常量值轉成字元串
    • 測試題
      • 判斷定義為String類型的s1和s2是否相等?
        • String s1 = "abc";
        • String s2 = "abc";
        • System.out.println(s1 == s2);
        • System.out.println(s1.equals(s2));
      • 下麵這句話在記憶體中創建了幾個對象?
        • String s1 = new String("abc");
          • 答案: 創建了兩個看對象,一個在常量池,一個在堆記憶體
      • 判斷定義為String類型的s1和s2是否相等
        • String s1 = new String("abc");
        • String s2 = "abc";
        • System.out.println(s1 == s2);
        • System.out.println(s1.equals(s2));
      • 判斷定義為String類型的s1和s2是否相等?
        • String s1 = "a" + "b" + "c";
        • String s2 = "abc";
        • System.out.println(s1 == s2);
        • System.out.println(s1.equals(s2));
      • 判斷定義為String類型的s1和s2是否相等?
        • String s1 = "ab";
        • String s2 = "abc";
        • String s3 = s1 + "c";
        • System.out.println(s3 == s2);
        • System.out.println(s3.equals(s2));
  4. 常用的判斷方法

    • boolean equals(Object obj): 比較字元串的內容是否相同,區分大小寫

    • boolean equalsIgnoreCase(String str): 比較字元串的內容是否相同,忽略大小寫

    • boolean contains(String str): 判斷大字元串中是否包含小字元串

    • boolean startsWith(String str): 判斷字元串是否以某個指定的字元串開頭

    • boolean endsWith(String str): 判斷字元串是否以某個指定的字元串結尾

    • boolean isEmpty(): 判斷字元串是否為空

    • 案例

      • 需求:模擬登錄,給三次機會,並提示還有幾次。
      • 用戶名和密碼都是admin
      public static void main(String[] args) {
       	Scanner scanner = new Scanner(System.in);
       	int i = 1;
       	while(i<=3){
       		System.out.println("請輸入用戶名");
       		String name = scanner.nextLine();
       		System.out.println("請輸入密碼");
       		String password = scanner.nextLine();
       		if("admin".equals(name)&&"admin".equals(password)){
       			System.out.println("恭喜您,登錄成功");
       			break;
       		}
       		System.out.println("用戶名或密碼錯誤,請您重新輸入,您還有"+(3-i)+"次機會機會");
       		i++;
       	}
       	scanner.close();
       }
      
    • 測試題

      • 查詢一個某個班級中所有姓張的學生
      • String[] strs = {"李張蛋","張三","張飛","李偉","劉明"};
  5. 常用的獲取方法

    • int length(): 獲取字元串的長度

    • char charAt(int index): 獲取指定索引位置的字元

    • int indexOf(int ch): 返回指定字元在此字元串中第一次出現處的索引, ch是字元的碼表值

    • int indexOf(String str): 返回指定字元串在此字元串中第一次出現處的索引

    • int indexOf(int ch,int fromIndex): 返回指定字元在此字元串中從指定位置後第一次出現處的索引

    • int indexOf(String str,int fromIndex): 返回指定字元串在此字元串中從指定位置後第一次出現處的索引

    • int lastIndexOf 同上

    • String substring(int start):從指定位置開始截取字元串,預設到末尾

    • String substring(int start,int end):從指定位置開始到指定位置結束截取字元串

    • 案例

      • 需求:遍歷字元串
      public static void main(String[] args) {
      	String str = "abcdkekdkgallsd";
      	for (int i = 0; i < str.length(); i++) {
      		System.out.println(str.charAt(i));
      	}
      }
      
    • 測試題

      • 需求:不准使用charAt(),遍歷字元串
  6. 常用的轉換方法

    • byte[] getBytes(): 把字元串轉換為位元組數組

    • char[] toCharArray():把字元串轉換為字元數組

    • static String valueOf(char[] chs):把字元數組轉成字元串

    • static String valueOf(int i):把int類型的數據轉成字元串

    • 註意:String類的valueOf方法可以把任意類型的數據轉成字元串

    • String toLowerCase():把字元串轉成小寫(瞭解)

    • String toUpperCase():把字元串轉成大寫

    • String concat(String str):把字元串拼接

    • 案例

      • 需求:把一個字元串的首字母轉成大寫,其餘為小寫
      public static void main(String[] args) {
      	String str = "abCdkeHgDlsd";
          String str2 = str.substring(0,1).toUpperCase().concat(str.substring(1).toLowerCase());
      	System.out.println(str2);
      }
      
  7. 替換方法

    • String replace(char old,char new) : 將字元串中的一部分字元用新的代替
    • String replace(String old,String new) : 將字元串中的一部分字元串用新的代替
  8. 切割方法

    • String[] split(String regex) : 按照規則來切割字元串
    • String[] split(String regex, int limit) : 按照規則來切割字元串 limit 表示總共切成幾段(也就是數組的長度)
  9. 其他常用方法

    • trim() : 去除字元串前後的空格
    • int compareTo(String anotherString) : 按字典順序比較兩個字元串(大小寫)
    • int compareToIgnoreCase(String str) : 按字典順序比較兩個字元串(忽略大小)

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

-Advertisement-
Play Games
更多相關文章
  • path [ pɑ:θ ] 路徑 unexpected [ˌʌnɪkˈspektɪd] 不期望的 class [klɑ:s] 類 usage [ˈju:sɪdʒ] 使用 public ['p ʌblik] 公共的,公用的 version [ˈvɜ:ʃn] 版本 private ['praivit] ...
  • 一、 含義 Cookie意為“甜餅”,是由W3C組織提出,最早由Netscape社區發展的一種機制。目前Cookie已經成為標準,所有的主流瀏覽器如IE、Netscape、Firefox、Opera等都支持Cookie。 由於HTTP是一種無狀態的協議,伺服器單從網路連接上無從知道客戶身份,怎麼辦呢 ...
  • 哈嘍兄弟們,今天咱們來實現用Python來批量生成請假條,這回既學了東西又做了事情,兩不誤~ 本文就將基於一個真實的辦公案例進行講解如何提取Excel內容並創建Word 主要將涉及以下三個知識點 openpyxl 讀取 Excel 文件 python-docx 寫入 Word 文件 python-d ...
  • 1. 頁面傳值 1.1 父頁面向子頁面傳值 父頁面: /pages/xx/xxx?id=1 子頁面 // option就可以接收到父頁面傳來的值 onLoad:function(option){ } 1.2 子父頁面 子頁面 var pages = getCurrentPages() var pre ...
  • 摘要:盤點 Python 中字元串的幾個常用操作,對新手極度的友好。 本文分享自華為雲社區《盤點 Python 中字元串的常用操作,對新手極度友好》,作者:TT-千葉 。 在 Python 中字元串的表達方式有四種 一對單引號一對雙引號一對三個單引號一對三個雙引號a = ‘abc’b= “abc”c ...
  • 時光荏苒,這周日就是元旦了,我也把年終總結提上了日程。 前言 今年的年終總結我打算多寫幾篇,每篇瞄準一個方向,寫一些對大家有幫助、有啟發的內容。 初步的想法會整理三篇: 第一篇分享求職面試的經驗 第二篇分享接私活的經驗 第三篇分享一下在北京買房的經驗,作為過來人和你嘮嘮要不要在一線城市買房。 整理這 ...
  • 前段時間收到線上一些列告警,內容是CMSGC太頻繁。那接下來這篇文章我會告訴你:什麼是CMSGC太頻繁;整個排查過程與你分享;以及一些規避手段。 ...
  • 想用python腳本創建一個耦合coupling關係,需要定義control piont和被控制的surfaces.兩者都可以先分別歸入到set 和surface里,最後用set和surface作為coupling創建時的參數。 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...