「java统计不同类型个数」java统计不同类型个数的数量
本篇文章给大家谈谈java统计不同类型个数,以及java统计不同类型个数的数量对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、用户输入一个数组,统计数组中不同数字的个数。用java编程
- 2、编写java程序统计字符个数。
- 3、用Java编写程序对字符串 按字符的ASCII值排序,并统计各种字符的个数。
- 4、java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据
- 5、java 中有没有统计同一类型数据个数的函数
- 6、用java怎统计windows目录下的文件种类数(后缀名)?相同种类的个数??急用??详细点!!哥是个文盲的!
用户输入一个数组,统计数组中不同数字的个数。用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统计不同类型个数的数量的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-12-14,除非注明,否则均为
原创文章,转载请注明出处。