Java遍歷字符串和統(tǒng)計(jì)字符個(gè)數(shù)的操作方法
一、引入
在之前我們遍歷過數(shù)組,所謂遍歷就是將數(shù)組中每一個(gè)元素都給獲取出來。
現(xiàn)在遍歷字符串也是一樣的,就是我們需要將字符串里的每一個(gè)字符都給拿出來。
二、涉及到的方法
public char charAt(int index)
:根據(jù)索引返回對(duì)應(yīng)的字符
字符串也是有索引的,例如"鋼門123吹小雪"
為例,對(duì)應(yīng)的索引分別為 0 1 2 3 4 5 6 7
,可以發(fā)現(xiàn),這個(gè)跟我們之前數(shù)組索引的規(guī)則一模一樣!
public int length()
:返回此字符串的長(zhǎng)度
區(qū)分 —— 數(shù)組的長(zhǎng)度:數(shù)組名.length
,數(shù)組的長(zhǎng)度是一個(gè)屬性,所以我們?cè)谡{(diào)用的時(shí)候 length
后面是不加小括號(hào)的。而字符串的長(zhǎng)度是一個(gè)方法,方法在調(diào)用的時(shí)候 length
是需要加小括號(hào)的。
代碼示例
package com.itheima.stringdemo; import java.util.Scanner; public class StringDemo5 { public static void main(String[] args) { //1.鍵盤錄入一個(gè)字符串 Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串"); String str = sc.next(); //2.進(jìn)行遍歷 for (int i = 0; i < str.length(); i++) { //i 依次表示字符串的每一個(gè)索引 char c = str.charAt(i); System.out.println(c); } } }
三、練習(xí):統(tǒng)計(jì)字符串個(gè)數(shù)
需求:鍵盤錄入一個(gè)字符串,統(tǒng)計(jì)該字符串中大寫字母字符,小寫字母字符,數(shù)字字符出現(xiàn)的次數(shù)(不考慮其他字符)
package com.itheima.stringdemo; import java.util.Scanner; public class StringDemo6 { public static void main(String[] args) { //1.鍵盤錄入一個(gè)字符串 Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入一個(gè)字符串"); String str = sc.next(); //2.統(tǒng)計(jì)--- 計(jì)數(shù)器思想 //定義三個(gè)計(jì)數(shù)器 int bigCount = 0; int smallCount = 0; int numberCount = 0; // 如果還需要統(tǒng)計(jì)其他字符,只需要再加一個(gè) otherCount 即可 for (int i = 0; i < str.length(); i++) { //i 依次表示字符串中的每一個(gè)索引 char c = str.charAt(i); if(c >= 'a' && c <= 'z'){ //char類型的變量在參與計(jì)算的時(shí)候自動(dòng)類型提升為int,在提升的時(shí)候就會(huì)自動(dòng)查詢ascii碼表,變成對(duì)應(yīng)的數(shù)字,然后再去進(jìn)行比較 smallCount++; }else if(c >= 'A' && c <= 'Z'){ bigCount++; // 注:如果寫成 "c >= 0 && c <= 9" 就會(huì)出問題,因?yàn)樵贏SCII碼表中,字符 '0' 所對(duì)應(yīng)的數(shù)字其實(shí)是 48 ,字符 '9' 所對(duì)應(yīng)的數(shù)字其實(shí)是57。 }else if(c >= '0' && c <= '9'){ numberCount++; } } //3.輸出打印 System.out.println("小寫字母有:" + smallCount + "個(gè)"); System.out.println("大寫字母有:" + bigCount + "個(gè)"); System.out.println("數(shù)字字母有:" + numberCount + "個(gè)"); } }
到此這篇關(guān)于Java遍歷字符串和統(tǒng)計(jì)字符個(gè)數(shù)的操作方法的文章就介紹到這了,更多相關(guān)java遍歷字符串內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot使用Sa-Token實(shí)現(xiàn)賬號(hào)封禁、分類封禁、階梯封禁的示例代碼
本文主要介紹了SpringBoot使用Sa-Token實(shí)現(xiàn)賬號(hào)封禁、分類封禁、階梯封禁的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07幾種常見mybatis分頁(yè)的實(shí)現(xiàn)方式
這篇文章主要介紹了幾種常見mybatis分頁(yè)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06Java中IO流 RandomAccessFile類實(shí)例詳解
這篇文章主要介紹了Java中IO流 RandomAccessFile類實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-05-05SpringCloud微服務(wù)架構(gòu)升級(jí)匯總
這篇文章主要介紹了SpringCloud微服務(wù)架構(gòu)升級(jí)匯總,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間互相協(xié)調(diào)、互相配合,為用戶提供最終價(jià)值,需要的朋友可以參考下2019-06-06springcloud+nacos實(shí)現(xiàn)灰度發(fā)布示例詳解
這篇文章主要介紹了springcloud+nacos實(shí)現(xiàn)灰度發(fā)布,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08java轉(zhuǎn)樹形結(jié)構(gòu)工具類詳解
這篇文章主要為大家詳細(xì)介紹了java轉(zhuǎn)樹形結(jié)構(gòu)工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08Java中實(shí)現(xiàn)String字符串分割的3種方法
這篇文章主要介紹了Java中實(shí)現(xiàn)String字符串分割的3種方法,文章底部介紹了JAVA?截取字符串的三種方法subString,StringUtils,split,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05