一文詳解Java中字符串的基本操作
一、遍歷字符串案例
需求:鍵盤(pán)錄入一個(gè)字符串,使用程序?qū)崿F(xiàn)在控制臺(tái)遍歷該字符串
思路:
1、鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn)
2、遍歷字符串,首先要能夠獲取到字符串中的每一個(gè)字符
public char charAt(int index):返回指定索引處的char值,字符串的索引也是從0開(kāi)始的
3、遍歷字符串,其次要能夠獲取到字符串的長(zhǎng)度
public int length():返回此字符串的長(zhǎng)度
數(shù)組的長(zhǎng)度:數(shù)組名.length
字符串的長(zhǎng)度:字符串對(duì)象.length()
4、遍歷字符串的通用格式
代碼實(shí)現(xiàn):
public class StringTest02 { public static void main(String[] args) { //鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn) Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串:"); String line = sc.nextLine(); for(int i=0; i<line.length(); i++) { System.out.println(line.charAt(i)); } } }
二、統(tǒng)計(jì)字符次數(shù)案例
需求:鍵盤(pán)錄入一個(gè)字符串,統(tǒng)計(jì)該字符串中大寫(xiě)字母字符,小寫(xiě)字母字符,數(shù)字字符出現(xiàn)的次數(shù)(不考慮其他字符)
思路:
1、鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn)
2、要統(tǒng)計(jì)三種類型的字符個(gè)數(shù),需定義三個(gè)統(tǒng)計(jì)變量,初始值都為0
3、遍歷字符串,得到每一個(gè)字符
4、判斷該字符屬于哪種類型,然后對(duì)應(yīng)類型的統(tǒng)計(jì)變量+1
假如ch是一個(gè)字符,我要判斷它屬于大寫(xiě)字母,小寫(xiě)字母,還是數(shù)字,直接判斷該字符是否在對(duì)應(yīng)的范圍即可
大寫(xiě)字母:ch>='A' && ch<='Z'
小寫(xiě)字母: ch>='a' && ch<='z'
數(shù)字: ch>='0' && ch<='9'
5、輸出三種類型的字符個(gè)數(shù)
代碼實(shí)現(xiàn):
public class StringTest03 { public static void main(String[] args) { //鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn) Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串:"); String line = sc.nextLine(); //要統(tǒng)計(jì)三種類型的字符個(gè)數(shù),需定義三個(gè)統(tǒng)計(jì)變量,初始值都為0 int bigCount = 0; int smallCount = 0; int numberCount = 0; //遍歷字符串,得到每一個(gè)字符 for(int i=0; i<line.length(); i++) { char ch = line.charAt(i); //判斷該字符屬于哪種類型,然后對(duì)應(yīng)類型的統(tǒng)計(jì)變量+1 if(ch>='A' && ch<='Z') { bigCount++; } else if(ch>='a' && ch<='z') { smallCount++; } else if(ch>='0' && ch<='9') { numberCount++; } } //輸出三種類型的字符個(gè)數(shù) System.out.println("大寫(xiě)字母:" + bigCount + "個(gè)"); System.out.println("小寫(xiě)字母:" + smallCount + "個(gè)"); System.out.println("數(shù)字:" + numberCount + "個(gè)"); } }
三、字符串拼接案例
需求:定義一個(gè)方法,把int數(shù)組中的數(shù)據(jù)按照指定的格式拼接成一個(gè)字符串返回,調(diào)用該方法,并在控制臺(tái)輸出結(jié)果。例如,數(shù)組int[] arr = {1,2,3};,執(zhí)行方法后的輸出結(jié)果為:[1,2,3]
思路:
1、定義一個(gè) int 類型的數(shù)組,用靜態(tài)初始化完成數(shù)組元素的初始化
2、定義一個(gè)方法,用于把 int 數(shù)組中的數(shù)據(jù)按照指定格式拼接成一個(gè)字符串返回。
返回值類型 String,參數(shù)列表 int[] arr
3、在方法中遍歷數(shù)組,按照要求進(jìn)行拼接
4、調(diào)用方法,用一個(gè)變量接收結(jié)果
5、輸出結(jié)果
代碼實(shí)現(xiàn):
public class StringTest04 { public static void main(String[] args) { //定義一個(gè) int 類型的數(shù)組,用靜態(tài)初始化完成數(shù)組元素的初始化 int[] arr = {1, 2, 3}; //調(diào)用方法,用一個(gè)變量接收結(jié)果 String s = arrayToString(arr); //輸出結(jié)果 System.out.println("s:" + s); } //定義一個(gè)方法,用于把 int 數(shù)組中的數(shù)據(jù)按照指定格式拼接成一個(gè)字符串返回 /* 兩個(gè)明確: 返回值類型:String 參數(shù):int[] arr */ public static String arrayToString(int[] arr) { //在方法中遍歷數(shù)組,按照要求進(jìn)行拼接 String s = ""; s += "["; for(int i=0; i<arr.length; i++) { if(i==arr.length-1) { s += arr[i]; } else { s += arr[i]; s += ", "; } } s += "]"; return s; } }
四、字符串反轉(zhuǎn)案例
需求:定義一個(gè)方法,實(shí)現(xiàn)字符串反轉(zhuǎn)。鍵盤(pán)錄入一個(gè)字符串,調(diào)用該方法后,在控制臺(tái)輸出結(jié)果
例如,鍵盤(pán)錄入abc,輸出結(jié)果cba
思路:
1、鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn)
2、定義一個(gè)方法,實(shí)現(xiàn)字符串反轉(zhuǎn)。返回值類型 String,參數(shù) String s
3、在方法中把字符串倒著遍歷,然后把每一個(gè)得到的字符拼接成一個(gè)字符串并返回
4、調(diào)用方法,用一個(gè)變量接收結(jié)果
5、輸出結(jié)果
代碼實(shí)現(xiàn):
public class StringTest05 { public static void main(String[] args) { //鍵盤(pán)錄入一個(gè)字符串,用 Scanner 實(shí)現(xiàn) Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串:"); String line = sc.nextLine(); //調(diào)用方法,用一個(gè)變量接收結(jié)果 String s = reverse(line); //輸出結(jié)果 System.out.println("s:" + s); } //定義一個(gè)方法,實(shí)現(xiàn)字符串反轉(zhuǎn) /* 兩個(gè)明確: 返回值類型:String 參數(shù):String s */ public static String reverse(String s) { //在方法中把字符串倒著遍歷,然后把每一個(gè)得到的字符拼接成一個(gè)字符串并返回 String ss = ""; for(int i=s.length()-1; i>=0; i--) { ss += s.charAt(i); } return ss; } }
五、幫助文檔查看String常用方法
方法名 | 說(shuō)明 |
public boolean equals(Object anObject) | 比較字符串的內(nèi)容,嚴(yán)格區(qū)分大小寫(xiě)(用戶名和密碼) |
public char charAt(int index) | 返回執(zhí)行索引處的char值 |
public int length() | 返回此字符串的長(zhǎng)度 |
到此這篇關(guān)于一文詳解Java中字符串的基本操作的文章就介紹到這了,更多相關(guān)Java字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
sentinel整合ribbon與fallback流程分步講解
這篇文章主要介紹了sentinel整合ribbon與fallback分步流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08利用線程實(shí)現(xiàn)動(dòng)態(tài)顯示系統(tǒng)時(shí)間
編寫(xiě)Applet小程序,通過(guò)在HTML文檔中接收參數(shù),顯示當(dāng)前的系統(tǒng)時(shí)間,需要的朋友可以參考下2015-10-10java本機(jī)內(nèi)存分配Native?memory?allocation?mmap失敗問(wèn)題解決
這篇文章主要介紹了java本機(jī)內(nèi)存分配Native?memory?allocation?mmap失敗問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Spring Security整合Oauth2實(shí)現(xiàn)流程詳解
這篇文章主要介紹了Spring Security整合Oauth2實(shí)現(xiàn)流程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08Mybatis如何通過(guò)接口實(shí)現(xiàn)sql執(zhí)行原理解析
為了簡(jiǎn)化MyBatis的使用,MyBatis提供了接口方式自動(dòng)化生成調(diào)用過(guò)程,可以大大簡(jiǎn)化MyBatis的開(kāi)發(fā),下面這篇文章主要給大家介紹了關(guān)于Mybatis如何通過(guò)接口實(shí)現(xiàn)sql執(zhí)行原理解析的相關(guān)資料,需要的朋友可以參考下2023-01-01解決idea 通過(guò)build project 手動(dòng)觸發(fā)熱部署失敗的問(wèn)題
在debug運(yùn)行項(xiàng)目的過(guò)程中,并且保證(不添加方法,不修改方法名)一定的規(guī)則的情況下,可以通過(guò)build project 來(lái)手動(dòng)熱部署項(xiàng)目,本文給大家介紹解決idea 通過(guò)build project 手動(dòng)觸發(fā)熱部署失敗的問(wèn)題,感興趣的朋友一起看看吧2023-12-12Java中dubbo+zookeeper微服務(wù)架構(gòu)簡(jiǎn)介
Apache Dubbo是一款高性能的 Java RPC 框架,這篇文章主要介紹了Java中dubbo+zookeeper微服務(wù)架構(gòu),需要的朋友可以參考下2021-09-09