问题描述:传递一个字符串,分辨出其中所含有的数字和字母的个数
涉及变量:
list:String型变量,所给字符串
Numresult:int[]型变量,存放list中所含0-9的数字的个数
Alresult:int[]型变量,存放list中所含大写字母的个数
Alpresult:int[]型变量,存放list中所含小写字母的个数
result:int型变量,存放list中所含其他字符的个数
time:int型变量,调用输出函数的次数
大致思路:
初始化先将所要判断的字符串list传递给类,并将所要存放的各个数字和字母的数组先初始化
此处的result为总字符数,在后面的方法中进行其他改变才能获得其他字符数
代码如下:
判断所含的各个数字的个数
将所给字符串遍历,由于0-9的ASCII值在48-57之间,所以当字符串中分隔出来的字符在这之间时,
根据在不同的情况存放在数组Numresult中的不同位置
在确定字符是数字时,result自减少1
大写字母和小写字母的成员方法类似,只是ASCII码的范围有所变化,
由此在将个数存放进数组中时要相应地减去a和A,避免数组下标越界错误
其他字符的个数是由result来操控的,因此输出result的值即可
有些细心的朋友可能会发现,上面四个方法都是用了private做修饰符,即只允许在本类内调用
若我在另一个类中建立了CalString类的变量,是不允许调用上面几个方法的
这是因为result的值只能在判断完数字,大小写字母后才能达到准确
若不了解的人随意调用,会导致输出错误的结果,因此只能通过output来调用
而在output里,有一个time自增加的语句
因为只有在第一次判断中需要将不同个数存入数组中,之后并不需要做重复操作
若重复操作,不仅耗时,且会导致result的值出错
以上是我对判断字符串中所含不同字符个数的看法,希望对各位有所帮助
190127 Rewivy