本示例是布置给学生做业的参考程序,其余初学者亦可参考。java
- import java.util.Scanner;
- import java.util.ArrayList;
- public class LetterStatistics
- {
- public static void main(String[] args)
- {
- //sentence保存用户输入的字符串
- String sentence = null;
- //ch保存从字符串中截取的字符
- char ch = 'a';
- int index = 0;
- //unicode保存字符的unicode编码
- int unicode = 0;
- int temp = 0;
- Scanner scan = new Scanner(System.in);
- //保存字母的ArrayList
- ArrayList<Character> letter = new ArrayList<Character>();
- //添加5个元音,注意这里有装箱操做,即把
- //字符包装为对应的Character对象
- letter.add('a');
- letter.add('e');
- letter.add('i');
- letter.add('o');
- letter.add('u');
- //添加字母c,表明全部非元音字母
- letter.add('c');
- //计数器ArrayList,第0个是字母a的计数器,其它以此类推
- ArrayList<Integer> counter = new ArrayList<Integer>();
- //这里一样有装箱操做
- counter.add(0);
- counter.add(0);
- counter.add(0);
- counter.add(0);
- counter.add(0);
- counter.add(0);
- System.out.println("请输入一个字符串:");
- sentence = scan.nextLine();
- int length = sentence.length();
- //扫描字符串,提取其中的每一个字母来处理
- for(index = 0; index < length; index++)
- {
- //提取下标为index的字符
- ch = sentence.charAt(index);
- //获取字符的Unicode编码
- unicode = (int)ch;
- //只处理小写字母
- if(unicode <= 122 && unicode >=97)
- {
- switch(ch)
- {
- case 'a':
- //自动拆箱,把Integer类型值自动
- //转换为int类型
- temp = counter.get(0);
- temp++;
- //把temp值赋给counter中的第0个元素,
- //即元音字母a的计数器。自动装箱,
- //把int类型自动包装为Integer类型
- counter.set(0, temp);
- break;
- //如下相似
- case 'e':
- temp = counter.get(1);
- temp++;
- counter.set(1, temp);
- break;
- case 'i':
- temp = counter.get(2);
- temp++;
- counter.set(2, temp);
- break;
- case 'o':
- temp = counter.get(3);
- temp++;
- counter.set(3, temp);
- break;
- case 'u':
- temp = counter.get(4);
- temp++;
- counter.set(4, temp);
- break;
- default:
- temp = counter.get(5);
- temp++;
- counter.set(5, temp);
- }
- }
- else
- {
- //若当前字符不是小写字母,则不作任何处理,
- //继续下次循环,处理下一个字符
- continue;
- }
- }
- length = counter.size();
- //打印输出各类字母的个数
- for(index = 0; index < length - 1; index++)
- {
- System.out.println("字符串中元音"
- + letter.get(index)
- + "的个数是:"
- + counter.get(index)
- + "。");
- }
- System.out.println("辅音的个数是:" + counter.get(index));
- }
- }