「java统计不同类型个数」java统计不同类型个数的数量

博主:adminadmin 2022-12-14 09:42:10 85

本篇文章给大家谈谈java统计不同类型个数,以及java统计不同类型个数的数量对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用户输入一个数组,统计数组中不同数字的个数。用java编程

你好,这是答案

import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;

/**

 * @author liuxe

 * @since JDK 1.7.0_79

 */

public class NumberTest {

    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        System.out.println("请直接输入数字串,中间无需间隔");

        String str = scanner.next();

        char[] chars = str.toCharArray();

        Set set = new HashSet();

        for (char ch : chars) {

            set.add(ch);

        }

        System.out.println("共有" + set.size() + "种不同数字");

    }

}

编写java程序统计字符个数。

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编写程序对字符串 按字符的ASCII值排序,并统计各种字符的个数。

char的值即为其ascii码值..因此.代码如下

public class CharsSort {

// 排序,采用冒泡排序法

public static String sort(String str) {

char chs[] = str.toCharArray();

int size = chs.length;

char temp;

for (int i = 0; i size; i++) {

for (int j = size - 1; j i; j--) {

if (chs[j] chs[j - 1]) {

temp = chs[j];

chs[j] = chs[j - 1];

chs[j - 1] = temp;

}

}

}

return new String(chs);

}

// 用做统计各类字符数目

public static void statistic(String str) {

int countOfNumber = 0;// 数字的数目

int countOfLeter = 0;// 字母的数目

int countOfSymbol = 0;// 符号的数目

char[] chs = str.toCharArray();

int size = chs.length;

// 判断字符类型,分类统计

for (int i = 0; i size; i++) {

if ((chs[i] 'z' chs[i] 'a')

|| (chs[i] 'Z' chs[i] 'A')) {

countOfLeter++;

} else if (chs[i] '9' chs[i] '0') {

countOfNumber++;

} else {

countOfSymbol++;

}

}

// 打印统计结果

System.err.println("包含字母:" + countOfLeter + "个");

System.err.println("包含数字:" + countOfNumber + "个");

System.err.println("包含其他符号:" + countOfSymbol + "个");

}

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

// 测试结果

String str = "68765Shfsa*3219(6faylahjyAbo81av)tiA52N6#60_84";

str = sort(str);// 字符串排序

System.err.println(str);// 打印结果

statistic(str);// 统计各类字符数目

}

}

java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据

集合分组统计处理, 实现的方法很多,简单的写几种方法供参考;(理解后,自行扩展完善)

方法一:(Java8流处理粗略版) 该版本存在的问题:有些区间没有数据,就不打印显示该区间

import java.util.*;

import java.util.stream.*;

public class NumberDemo {

public static void main(String[] args) {

ArrayListInteger list = new ArrayListInteger();

int numbers = 10;// 集合里数字的个数

int space = 1000;// 区间的间隔

// 给集合里添加数字

Random rd = new Random();

for (int i = 0; i  numbers; i++) {

list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999

}

funStream(list, space);

}

private static void funStream(ArrayListInteger list, int space) {

// 使用流处理 把 数字分组

MapString, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {

return "区间:[" + num / space * space + "," + (num / space + 1) * space + ")";// 分组规则

}));

map.forEach((k,v)-{

System.out.println(k);

System.out.println("\t"+v.size()+"个数据");

});

}

}

方法二:(Java8流处理详细版) 就算有的区间是0个数据,照样打印出来

import java.util.*;

import java.util.stream.*;

public class NumberDemo2 {

public static void main(String[] args) {

ArrayListInteger list = new ArrayListInteger();

int numbers = 10;// 集合里数字的个数

int space = 1000;// 区间的间隔

// 给集合里添加数字

Random rd = new Random();

for (int i = 0; i  numbers; i++) {

list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999

}

funStream(list, space);

}

private static void funStream(ArrayListInteger list, int space) {

// 使用流处理 把 数字分组

MapInteger, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {

return num / space;// 分组规则

}));

// 获取集合里的最大值

OptionalInteger maxop = list.stream().collect(Collectors.maxBy(Integer::compareTo));

int max = maxop.orElse(0);

// 计算出区间的数量

int groups = max % space == 0 ? max / space : max / space + 1;

// 打印结果

for (int i = 0; i  groups; i++) {

System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");

System.out.println("\t有" + (map.get(i)==null?0:map.get(i).size()) + "个数据");

// System.out.println("\t"+map.get(i));//把数据打印出来

}

}

}

方法三:(比较传统的方法)

import java.util.*;

public class NumberDemo3 {

public static void main(String[] args) {

ArrayListInteger list = new ArrayListInteger();

int numbers = 10;// 集合里数字的个数

int space = 1000;// 区间的间隔

//给集合里添加数字

Random rd = new Random();

for (int i = 0; i  numbers; i++) {

list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999

}

fun(list,space);

}

private static void fun(ArrayListInteger list, int space) {

Collections.sort(list);//排序

int max= list.get(list.size()-1);//取得最大值

int groups = max % space == 0 ? max / space : max / space + 1;//取得区间的数量

HashMapInteger,ArrayListInteger map=new HashMapInteger, ArrayListInteger();//存区间和该区间的数字

for (int i = 0; i  groups; i++) {

map.put(i, new ArrayList());

}

//把元素添加到指定的区间

for (int i = 0; i  list.size(); i++) {

map.get(list.get(i)/space).add(list.get(i));

}

//打印结果

for (int i = 0; i  groups; i++) {

System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");

System.out.println("\t有"+ map.get(i).size()+"个数据");

//System.out.println("\t"+map.get(i));//把数据打印出来

}

}

}

测试效果如下

区间:[0,1000)

有5个数据

区间:[1000,2000)

有0个数据

区间:[2000,3000)

有1个数据

区间:[3000,4000)

有2个数据

区间:[4000,5000)

有2个数据

java 中有没有统计同一类型数据个数的函数

好像直接的方法统计个数没有,需要你自己分割计数或者用正则表达式匹配来计算。

用java怎统计windows目录下的文件种类数(后缀名)?相同种类的个数??急用??详细点!!哥是个文盲的!

File f = new File("c:/windows");

List dirs = new ArrayList();

dirs.add(f.listFiles());

for (int i = 0; i dirs.size(); i ++){

File[] files = (File[])dirs.get(i);

for (int j = 0; j files.length; j ++){

if (files[j].isDirectory()){

dirs.add(files[j].listFiles());

}else{

String fName = files[j].getName();

String[] ff = fName.split("\\.");

String eName = "":

if (ff.length == 2){

eName = ff[1];

}

if (fileType.containsKey(eName)){

Integer size = (Integer)fileType.get(eName);

size = new Integer(size.intValue() + 1);

fileType.put(eName, size);

}else{

Integer size = new Integer(1);

fileType.put(eName, size);

}

}

}

}

for (Iterator key = fileType.keySet().iterator(); key.hasNext(); ){

String eName = key.next().toString();

Integer size = (Integer)fileType.get(eName);

System.out.println("扩展名为【" + eName + "】的文件共有" + size + "个");

}

关于java统计不同类型个数和java统计不同类型个数的数量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-14,除非注明,否则均为首码项目网原创文章,转载请注明出处。