//构建控制台的输入流
公司主营业务:网站设计、网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联建站是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联建站推出荔浦免费做网站回馈大家。
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
System.out.print("input:\n");
//用于存储键值对的map
Map String, Integer countMap = new HashMapString, Integer();
String strtemp = "";
String []strarray;
//从控制台读取一行
String str = reader.readLine();
reader.close();
int count = 1;
int cur;
//如果没有输入
if(str == null || "".equals(str))
System.out.println("there are some erros!");
else{
//在字符串中找到第一个{
cur = str.indexOf('{');
if(cur 0){
System.out.println("do not contain '{'");
}else{
//在字符串中找到最后一个}
strtemp = str.substring(cur + 1);
cur = strtemp.lastIndexOf('}');
if(cur = 0){
strtemp = strtemp.substring(0, cur);
strarray = strtemp.split("\\,");
for(String ts : strarray){//将找到的字符串放入map中
if(countMap.containsKey(ts))
count += countMap.get(ts);
countMap.put(ts, count);
count = 1;
}
//打印字符串键对值
for(String ts : strarray){
if(countMap.containsKey(ts)){
System.out.println(ts + ": " + countMap.get(ts));
countMap.remove(ts);
}
}
}else{
System.out.println("do not contain '}' or no values in {}");
}
}
}
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、最终输出结果。
代码如下:
import java.util.Scanner;
/**
* 统计字符串中数字,字母,空格,其他字符的个数
* @author young
*
*/
public class Data01 {
public static void main(String[] args) {
int englishCount = 0;// 英文字母个数
int spaceCount = 0;// 空格个数
int numCount = 0;// 数字个数
int otherCount = 0;// 其他字符个数
Scanner sc = new Scanner(System.in);
System.out.println("请您输入一行字符:");
String str = sc.nextLine();// 取得控制台输入的一行字
char[] ch = str.toCharArray();// 把取道的字符串变成一个char数组
for (int i = 0; i ch.length; i++) {
if (Character.isLetter(ch[i])) {
// 判断是否为字母
englishCount++;
} else if (Character.isSpaceChar(ch[i])) {
// 判断是否为空格
spaceCount++;
} else if (Character.isDigit(ch[i])) {
// 判断是否为数字
numCount++;
} else {
// 以上都不是则认为是其他字符
otherCount++;
}
}
System.out.println("字母的个数:" + englishCount);
System.out.println("数字的个数:" + numCount);
System.out.println("空格的个数:" + spaceCount);
System.out.println("其他字符的个数:" + otherCount);
}
}
import java.util.Arrays;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
StringTokenizer st = new StringTokenizer(str," ");
int total = st.countTokens();
int len[] = new int[20];
Arrays.fill(len,0);
while (st.hasMoreTokens()) {
String s = st.nextToken();
len[s.length()]++;
}
System.out.println("长度 个数");
int max = 1;
for (int i = 1; i len.length; i++) {
if (len[i] 0)
max = i;
}
for (int i = 1; i
整个代码就是为了统计字符串中各个字符出现的个数
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);
分享题目:java统计数量代码 Java统计
网址分享:https://www.cdcxhl.com/article10/docjdgo.html
成都网站建设公司_创新互联,为您提供网站维护、App设计、网站制作、动态网站、面包屑导航、品牌网站制作
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联