重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
public class Test {\x0d\x0a\x0d\x0a public static void main(String[] args) throws Exception{\x0d\x0a Scanner input=new Scanner(System.in);\x0d\x0a System.out.println("请输入路径");\x0d\x0a String path=input.next();\x0d\x0a int charNum= 0 ;\x0d\x0a int wordsNum= 0;\x0d\x0a int lineNum = 0;\x0d\x0a InputStreamReader isr = new InputStreamReader(new FileInputStream(path)); \x0d\x0a BufferedReader br = new BufferedReader(isr);\x0d\x0a while( br.read()!= -1){\x0d\x0a String s = br.readLine();\x0d\x0a charNum+=s.length();\x0d\x0a wordsNum +=s.split(" ").length;\x0d\x0a lineNum ++; \x0d\x0a }\x0d\x0a isr.close();//关闭\x0d\x0a System.out.println("字符数:"+charNum+"\t单词数:"+wordsNum+"行 数:"+lineNum); \x0d\x0a\x0d\x0a }\x0d\x0a}
为上高等地区用户提供了全套网页设计制作服务,及上高网站建设行业解决方案。主营业务为成都做网站、网站制作、上高网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
整个代码就是为了统计字符串中各个字符出现的个数
MapCharacter, Integer result = getCharMaps(s); 这个方法调用
主要是看这个方法
public static MapCharacter, Integer getCharMaps(String s) {
MapCharacter, Integer map = new HashMapCharacter, Integer(); //定义一个map
for(int i = 0; i s.length(); i++) { // 下面的代码主要是循环字符串,一次取出每一个字符
Character c = s.charAt(i); //获取对应的字符
Integer count = map.get(c); //获取字符对应出现的次数
map.put(c, count == null ? 1 : count + 1); //如果之前出现过,则加1,否则直接赋1
}
return map; //返回最终的map
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int abcCount=0;//英文字母个数
int spaceCount=0;//空格键个数
int numCount=0;//数字个数
int otherCount=0;//其他字符个数
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
char[] ch = str.toCharArray();
for(int i=0;ich.length;i++){
if(Character.isLetter(ch[i])){
//判断是否字母
abcCount++;
}
else if(Character.isDigit(ch[i])){
//判断是否数字
numCount++;
}
else if(Character.isSpaceChar(ch[i])){
//判断是否空格键
spaceCount++;
}
else{
//以上都不是则认为是其他字符
otherCount++;
}
}
System.out.println("字母个数:"+abcCount);
System.out.println("数字个数:"+numCount);
System.out.println("空格个数:"+spaceCount);
System.out.println("其他字符个数:"+otherCount);
123456789101112131415161718192021222324
public static void main(String[] args) throws IOException { BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); String str=br.readLine(); int countNum = 0;//统计数字的个数 int countChar = 0;//统计英文字母的个数 int countSpace = 0;//统计空格的个数 int countOthers = 0;//统计其它字符的个数 for (int i = 0; i str.length(); i++) { char c = str.charAt(i); if (c = '0' (int) c = '9') { countNum++; } else if ((c = 'a' c = 'z')||(c = 'A' c = 'Z')) { countChar++; } else if (c == ' ') { countSpace++; } else{ countOthers++; } } System.out.println("数字个数:"+countNum); System.out.println("英文字母个数:"+countChar); System.out.println("空格个数:"+countSpace); System.out.println("其他字符个数:"+countOthers); }
一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。