Java遍歷字符串和統(tǒng)計(jì)字符個(gè)數(shù)的操作方法
一、引入
在之前我們遍歷過(guò)數(shù)組,所謂遍歷就是將數(shù)組中每一個(gè)元素都給獲取出來(lái)。
現(xiàn)在遍歷字符串也是一樣的,就是我們需要將字符串里的每一個(gè)字符都給拿出來(lái)。
二、涉及到的方法
public char charAt(int index) :根據(jù)索引返回對(duì)應(yīng)的字符
字符串也是有索引的,例如"鋼門(mén)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.鍵盤(pán)錄入一個(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ù)
需求:鍵盤(pán)錄入一個(gè)字符串,統(tǒng)計(jì)該字符串中大寫(xiě)字母字符,小寫(xiě)字母字符,數(shù)字字符出現(xiàn)的次數(shù)(不考慮其他字符)
package com.itheima.stringdemo;
import java.util.Scanner;
public class StringDemo6 {
public static void main(String[] args) {
//1.鍵盤(pán)錄入一個(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類(lèi)型的變量在參與計(jì)算的時(shí)候自動(dòng)類(lèi)型提升為int,在提升的時(shí)候就會(huì)自動(dòng)查詢(xún)ascii碼表,變成對(duì)應(yīng)的數(shù)字,然后再去進(jìn)行比較
smallCount++;
}else if(c >= 'A' && c <= 'Z'){
bigCount++;
// 注:如果寫(xiě)成 "c >= 0 && c <= 9" 就會(huì)出問(wèn)題,因?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("小寫(xiě)字母有:" + smallCount + "個(gè)");
System.out.println("大寫(xiě)字母有:" + 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)文章
Javaweb項(xiàng)目session超時(shí)解決方案
這篇文章主要介紹了Javaweb項(xiàng)目session超時(shí)解決方案,關(guān)于解決方案分類(lèi)比較明確,內(nèi)容詳細(xì),需要的朋友可以參考下。2017-09-09
Java Annotation注解相關(guān)原理代碼總結(jié)
這篇文章主要介紹了Java Annotation注解相關(guān)原理代碼總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
CountDownLatch和Atomic原子操作類(lèi)源碼解析
這篇文章主要為大家介紹了CountDownLatch和Atomic原子操作類(lèi)的源碼解析以及理解應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
詳解SpringBoot 發(fā)布ApplicationEventPublisher和監(jiān)聽(tīng)ApplicationEvent事
這篇文章主要介紹了詳解SpringBoot 發(fā)布ApplicationEventPublisher和監(jiān)聽(tīng)ApplicationEvent事件,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
SpringBoot工程下Lombok的應(yīng)用教程詳解
這篇文章主要給大家介紹了關(guān)于SpringBoot工程下Lombok應(yīng)用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
基于Java語(yǔ)言實(shí)現(xiàn)Socket通信的實(shí)例
今天小編就為大家分享一篇關(guān)于基于Java語(yǔ)言實(shí)現(xiàn)Socket通信的實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01
SWT(JFace)體驗(yàn)之Slider,Scale
SWT(JFace)體驗(yàn)之Slider,Scale實(shí)現(xiàn)代碼。2009-06-06
java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟
作為一名Java后端開(kāi)發(fā)者,掌握如何從后端返回文件流至前端是基本技能之一,這篇文章主要介紹了java?http請(qǐng)求獲取圖片并返回文件流給前端的方法步驟,需要的朋友可以參考下2024-09-09

