跟我學java編程—Java字符串類型

2020-12-11 米粒教育

字符串是有限個字符的有序集合,前面講的char類型用於表示和存儲單個字符,字符串相當於幾個或多個char類型的有序集合,用於表示和存儲多個有序的字符序列。例如:「I want to learn Java programming」、「我要學Java編程」、「3+5=8」、「abc」等等。

四則運算器程序需要存儲用戶輸入的計算表達式,計算表達式由多個字符組合而成,用前面所掌握的Java數據類型,不適合存儲計算表達式。程序需要一個新的類型來存儲計算表達式,這個新的類型就是字符串類型。

圖 5-14 四種不適合存儲計算表達式

Java語言的字符串類型同前面介紹的Java基礎類型不太一樣,Java沒有給字符串類型定義一個關鍵字,用於聲明字符串類型,而是通過類的方式提供對字符串的操作和存儲。在Java語言中,字符串類型被定義為類,類名為「String」,該類提供了多個構造方法和字符串操作方法,用於滿足對字符串不同的處理要求。

String類的初始化

String類可用字符串常量對其初始化。例如:

也可以調用其構造方法來進行,String類提供了多個構造方法對其初始化,下面列舉了幾個主要的構造方法:

(1)方法名稱:String()

方法說明:構造一個空串(不包含任何字符)

方法示例:String szWelcome = new String();

(2)方法名稱:String(String original)

方法說明:用original內容初始化新創建的字符串

方法示例:

String szTemp = 「歡迎加入編程小組」;

String szWelcome = new String(szTemp);

(3)方法名稱:String(byte[] bytes))

方法說明:用字符數組(後面會講解數組結構)始化新創建的字符串

方法示例:

char chTemp[] ={『歡』,』迎』 ,』加』,』入』,』編』,』程』,』小』,』組』};

String szWelcome = new String(chTemp);

示例1:String類的初始化

在D盤Java目錄下,新建「StringInitSample.java」文件。用記事本打開「StringInitSample.java」文件,輸入以下代碼:

代碼結構分析

程序功能主要是演示String類聲明及初始化的使用。

程序使用了String類提供的三種不同的初始化方法。第一種方法是通過字符常量賦值初始化;第二種方法是通過new運算符(後面會講解)實例化String類,並以傳入的已聲明的字符串初始化;第三種方法是通過new運算符實例化String類,並以傳入的字符型數組初始化。

編譯「StringInitSample.java」文件,在命令行窗口輸入「javac StringInitSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java StringInitSample」運行Java程序,命令行窗口顯示如下信息:

圖 5-15 String類初始化運行結果

從上述結果可以看出,用相同的內容對String類進行不同的初始化,雖然初始化方法不太,但其內容是相同的。

String類的方法

String類提供了多個方法,用於完成對字符串查找、替換、比較、連接、複製、分割等操作。下面列舉了幾個主要的操作方法,其它方法請參考Java API:

(1)方法名稱:charAt(int index)

方法說明:返回由索引號指定的單個字符,索引是單個字符在字符序列的位置,String類的序列號從0開始。

方法示例:

String szWelcome = 「歡迎加入編程小組」;

//返回索引號為1的字符,當前應返回字符『迎』

char chTemp = szWelcome. charAt(1);

(2)方法名稱:length()

方法說明:獲取字符串的長度,String包含的字符的個數。

方法示例:

String szWelcome = 「歡迎加入編程小組」;

//返回字符串長度,當前返回數值8

int nLength = szWelcome. length()

(3)方法名稱:indexOf(int ch)

方法說明:查找字符串是否包含ch字符,返回字符的整型數值。若包含返回索引號,否則返回-1。

方法示例:

String szWelcome = 「歡迎加入編程小組」;

//查找字符』編』,當前返回4,索引號從0開始

int nIndex = szWelcome. indexOf((int)『編』)

//或

char chTemp = 『編』;

int nIndex = szWelcome. indexOf((int) chTemp)

備註:

該方法還可以支持傳入字符串類型以及從指定位置開始查找,詳情請參考Java API

(4)方法名稱:equals(Object anObject)

方法說明:比較兩個字符串內容是否相同,若內容相同返回true,否則返回false。傳入的參數Object類抽象了Java的所有類,也包括String類,在這裡可以認為是String類。關於類及類的抽象、繼承後面會講述。

方法示例:

String szWelcome1 = 「歡迎加入編程小組」;

String szWelcome2 = 「歡迎加入Java編程小組」;

//比較szWelcome1和szWelcome2的內容是否相同,當前返回false

boolean bEqual = szWelcome. Equals(szWelcome2);

示例2:String類的查找及比較操作

在D盤Java目錄下,新建「StringFindSample.java」文件。用記事本打開「StringFindSample.java」文件,輸入以下代碼:

代碼結構分析

程序功能主要是演示String類的查找、獲取長度、比較操作。

程序聲明了三個String類變量,其中,szWelcome1和szWelcome2賦予相同的值,用於內容比較操作。

語句「int nIndex = szWelcome1.indexOf('編');」,聲明了一個整型變量,用於接收查找方法indexOf返回的索引號,並通過printf方法格式化輸出。

語句「int nLength = szWelcome1.length();」,聲明了一個整型變量,用於接收length方法返回的字符串長度,並通過printf方法格式化輸出。

語句「boolean bEqual = szWelcome1.equals(szWelcome2);」,聲明了一個boolean型變量,用於接收equals方法返回的布爾值,並通過printf方法格式化輸出。

編譯「StringFindSample.java」文件,在命令行窗口輸入「javac StringFindSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java StringFindSample」運行Java程序,命令行窗口顯示如下信息:

圖 5-16 String類查找等操作運行結果

從上述結果可以看出,String類的length返回字符串包含的字符個數,indexOf返回字符所在字符串的索引位置,索引從0開始,因此查找字符『編』時,返回索引4。

在實際編程中,Java的String類是使用頻率非常高的類,需要深入理解和掌握,弄清楚String提供的各種操作方法和技巧。四則運算器解析計算表達式時,可以通過String的length方法獲取字符串長度,然後循環遍歷表達式的每個字符,並應用equals方法判斷是數字還是運算符,並做相應的處理。

編寫一個程序,要求獲取用戶輸入的字符串,並輸出字符串的長度。

相關焦點

  • 跟我學java編程—Java的格式化輸出
    中文註解:一個便捷的方法,使用指定的格式字符串和傳入的參數,將格式化的字符串輸出到輸出流(輸出設備)傳入的參數String format字符串類型,符合格式字符串語法描述的字符串Object... args格式字符串中格式說明符引用的參數,參數的數量是可變的,可以為零,參數的最大數量受Java?
  • 跟我學java編程—Java的Scanner類
    編譯「ScannerInitSample.java」文件,在命令行窗口輸入「javac ScannerInitSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java ScannerInitSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java表達式
    2其中,a、b、2為操作數,a和b為變量,2為數值常量,+為運算符② 『a』 + 3其中,『a』為字符常量,參與計算時其數值為該字符所在字符集的編碼值,『a』為ASCII嗎是,表達式『a』 + 3等同於97+3③ 「study」 + 「java
  • java基礎編程題之String字符串練習
    以下是剛開始學習java的基礎編程題,每天持續更新java每個知識點的題目,持續練習,不斷提高java基本功,培養編程能力。
  • 跟我學java編程—認識java語言的字符類型
    前面兩個小節討論了用於存儲數值的數據類型。另外還經常會遇到需要存儲並操縱字符型數據的情況。例如:計算數值表達式時,需要存儲運算符,這時需要一種可以存儲單個字符數據的數據類型。Java語言提供了一種char數據類型,可以滿足存儲單個字符的需要。
  • 跟我學java編程—Java的switch結構
    ,或可以轉換為int的類型,如char等。在D盤Java目錄下,新建「CaseSample.java」文件。用記事本打開「CaseSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示switch結構的使用。
  • 一起學JAVA——數據類型
    上一篇我們提到過,java是強數據類型語言,所有在定義變量和常量時必須指定數據類型。java到底支持哪些數據類型呢?比如阿里巴巴的總資產已經超出了證書類型的最大值了那怎麼存儲呢?java的設計者已經考慮到這個問題了!java提供了兩個特殊的類:BigInteger和BigDecimal。從名字上就可以看出來他們可以存儲很大的數。他支持多大的數呢?要多大就有多大,只要你能寫出來的他都可以存儲!
  • 跟我學java編程—Java跳轉語句—break語句
    示例1:使用break語句退出循環在D盤Java目錄下,新建「BreakSample1.java」文件。用記事本打開「BreakSample1.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示break語句的使用。
  • 跟我學java編程—Java邏輯運算符
    邏輯運算符用於連接兩個條件表達式或布爾類型的變量,用於執行多個判斷。在數學中,表示一個數值的範圍時,經常用不等式來表述。示例1:邏輯運算符在D盤Java目錄下,新建「LogicSample.java」文件。
  • 跟我學java編程—Java多重if結構
    在編程時遇到此種情況,則可使用多重if結構解決。多重if結構實際上if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,當有多個分支選擇時,可採用多重if結構。在D盤Java目錄下,新建「MuiltIfSample.java」文件。用記事本打開「MuiltIfSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示多重if結構的使用。
  • 跟我學java編程—深入理解while嵌套
    在D盤Java目錄下,新建「AngleSample.java」文件。用記事本打開「AngleSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示while嵌套循環語句的使用。編譯「AngleSample.java」文件,在命令行窗口輸入「javac AngleSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java AngleSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java while循環語句
    程序聲明了兩個int類型的變量num和result,分別用來存儲數字和乘積。然後,將num初始化為1,因為打算在while循環中從1開始執行乘法運算,求出1—10的數字與10的乘積,因此將while循環的條件編寫為num<=10。這樣確保了只要num小於等於10,就執行while循環;而當此條件變為假時,即num的值達到11時,就結束此循環。
  • 跟我學java編程—理解Java包的概念
    在java中用關鍵字「package」來創建包,HelloWorld項目HelloWorld.java給出了包創建代碼樣例:HelloWorld項目包邏輯結構如下圖所示:對應文件目錄hello下的HelloWorld.java。
  • java開發工程師 javascript的字符串
    寫在前面:java作為一門世界級程式語言金字塔頂尖的語言。需要大量的練習、練習、練習來鞏固自己所獲得的知識。
  • Java編程中常見的異常
    對數組操作中出現空指針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。java.lang.ArrayStoreException 數組存儲異常。當向數組中存放非數組聲明類型對象時拋出。 java.lang.ClassCastException 類造型異常。假設有類A和B(A不是B的父類或子類),O是A的實例,那麼當強制將O構造為類B的實例時拋出該異常。該異常經常被稱為強制類型轉換異常。
  • 跟我學java編程—Java簡單條件結構
    例如:要測試兩個整數類型的變量值num1和num2是否相等,可以編寫num1 == num2,然後將其放入一個if語句中,如下所示:if ( num1==num2 )如果num1和num2的數值相等,則條件為真,執行if後面的語句塊,否則條件為假,不執行if後面的語句塊。
  • Java中的字符串常用方法
    public boolean contains(String str): 判斷字符串中是否包含傳遞進來的字符串public boolean startsWith(String str): 判斷字符串是否以傳遞進來的字符串開頭public boolean endsWith(String str): 判斷字符串是否以傳遞進來的字符串結尾
  • 跟我學java編程—Java算術運算符
    示例1:加減乘除操作符運算在D盤Java目錄下,新建「OperationSample.java」文件。編譯「OperationSample.java」文件,在命令行窗口輸入「javac OperationSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java OperationSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—Java嵌套if
    在D盤Java目錄下,新建「EmbedSample.java」文件。用記事本打開「EmbedSample.java」文件,輸入以下代碼:代碼結構分析程序功能主要是演示嵌套if結構的使用。編譯「EmbedSample.java」文件,在命令行窗口輸入「javac EmbedSample.java」並執行命令,編譯通過後,在命令行窗口輸入「java EmbedSample」運行Java程序,命令行窗口顯示如下信息:
  • 跟我學java編程—深入理解for循環語句
    程序聲明了3個int類型的變量,number、count、factorial。分別用於存儲輸入的整數、循環變量的值、階乘值。For循環中表達式count=1為變量賦初值,表達式count<=number作為循環條件用來測試是否繼續執行循環,表達式count++用來修改循環變量的值。