Java字符串篇-6-字符串遍历和统计次数

      前面我们学习String类的一些方法,主要有两类,判断功能和获取功能。接下来,我们利用2个练习题来学会使用String类提供的方法去解决实际的问题。

 

1.字符串的遍历

 

       遍历这个功能真的是太常用,而且真的是很多面试题的能解答出来的前提条件。目前我们只知道利用for循环去实现遍历输出。

package string;

public class Demo3_String {
   public static void main(String[] args) {

     String st = "Anthony";
     for (inti = 0; i < st.length(); i++) {
        System.out.print(st.charAt(i)+ " ");
     } 
   }
}

输出结果:A n t h o n y

2.统计字符出现次数

 

       这个问题,相信很多人都在面试过程中遇到过。目前我们只讨论利用String类的方法去实现,集合类的方法我们还没有学习到,先不管HashMap这样的实现代码。

 

需求:一个长字符串,里面包含大写字母,小写字母还有数字,还有其他符号,要求统计出大写字母,小写字母,数字,和其他字符出现次数。例如字符串是这样:AUFEOADFeigeraeg2H424D&bh$3dw#

 

分析:

1.字符串是由字符组成,字符都是有范围,可以通过范围来判断是否包含该字符

2.如果包含就让计数器变量自增

 

具体代码实现如下(注释里面步骤和分析步骤结合着看)

package string;

public class Demo3_String {

	public static void main(String[] args) {
		
		String st = "AUFEOADFeigeraeg2H424D&bh$3dw#";
		
		// 定义分类的计数器
		int big = 0;        //用来统计大写字母个数
		int small = 0; 		//用来统计小写字母个数
		int num = 0;		//用来统计数字个数
		int other = 0;		//用来统计其它字符个数
		
		// 1. 利用for循环遍历,拿到每一个字符
		for (int i = 0; i < st.length(); i++) {
			char c = st.charAt(i);       // 获取到每个字符
		
		// 2.对字符进行分类判断,判断是否在对应范围内
			if(c >= 'A' && c <= 'Z') {
				big++;				// 如果满足大写字母条件,对应计数器自增
			}else if (c >= 'a' && c <= 'z') {
				small++;			// 如果满足小写字母条件,对应计数器自增
			}else if (c >= '0' && c <= '9') {  
				// 注意这里不能这样写 c >= 0 && c <= 9,因为'0'是一个字符
				num++; 				// 如果满足是数字,对应计数器自增
			}else {
				other++;
			}
		}
		
		// 3. 打印不同类型的计数器
		System.out.println(st + "中大写字母出现 " + big + "次,小写字母出现 " + small
		+"次,数字出现 "+ num+ "次,其他字母出现 "+other +"次");
	}
}

运行结果:

AUFEOADFeigeraeg2H424D&bh$3dw#中大写字母出现 10次,小写字母出现 12次,数字出现 5次,其他字母出现 3

 

     上面的需求是分类统计,如果出现分别统计每个字符出现个数,那么就要在这个基础上,引入数组,或者集合里面的Map。详情可以看这一篇:https://blog.csdn.net/u011541946/article/details/78304192

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值