要求:输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数,同时输出在一个字符串中指定字符串出现的次数。
代码如下:
package dg; import java.util.ArrayList; import java.util.Scanner; /** * * @author DUGANG */ public class Count { /** * @param args the command line arguments */ public static void main(String[] args) { String s = null; String subs = null; Scanner in = new Scanner(System.in); System.out.println("请输入一个字符串:"); s = in.next(); System.out.println("请输入需匹配的子串:"); subs = in.next(); ArrayList<Character> al_lc = new ArrayList<Character>(); ArrayList<Character> al_uc = new ArrayList<Character>(); ArrayList<Character> al_nl = new ArrayList<Character>(); char[] c = s.toCharArray(); for(int i = 0;i<c.length;i++){ if(c[i]>=65 && c[i]<=90){ al_uc.add(c[i]); }else if(c[i]>=97 && c[i]<=122){ al_lc.add(c[i]); }else{ al_nl.add(c[i]); } } for(char ch : al_lc) System.out.print(ch);//输出小写英文字母串 System.out.println(); for(char ch : al_uc) System.out.print(ch);//输出大写英文字母串 System.out.println(); for(char ch : al_nl) System.out.print(ch);//输出非英文字母串 System.out.println(); System.out.println("输入字符串中小写英文字母数:" + al_lc.size()+ "个; 大写字英文母数:" + al_uc.size() + "个; 非英文字母数:" + al_nl.size() + "个。"); System.out.println("指定字符串出现了" + subCount(s, subs) +"次!"); } public static int subCount(String string, String subs){ int count = 0; String temp = string; while(temp.indexOf(subs)!=-1){//当temp中无subs子串时返回-1 count++; temp = temp.substring(temp.indexOf(subs)+subs.length());//将第一次匹配后的剩下的字符串赋值给tenp } return count; } }
结果:
请输入一个字符串:
abcAA!@#abhjkKASDabcGHababc
请输入需匹配的子串:
abc
abcabhjkabcababc
AAKASDGH
!@#
输入字符串中小写英文字母数:16个; 大写字英文母数:8个; 非英文字母数:3个。
指定字符串出现了3次!