一,输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
提示:
对比char字符在ASK码的范围,就可以确定它符号的类别
char字符ASK码的范围
数字0到9: 48~57
字母A到Z:65到90 a到z:97到122
空格是32
public class Client {
public Map<String, Integer> getCharNumber(String str) {
int num = 0,letter = 0,space = 0,other = 0;//变量的共同定义,表示这四个变量都是int类型
Map<String,Integer> map = new HashMap<String, Integer>();
if(str != null && str.length() > 0) {
char[] charArray = str.toCharArray();//将字符串分割为char数组
for(char cr:charArray) {
if(cr >= 48 && cr <= 57) {//数字
num++;
} else if((cr >= 65 && cr <= 90) || (cr >= 97 && cr <= 122)) {//字母
letter++;
} else if(cr == 32) {//空格
space++;
} else {//其他
other++;
}
}
}
map.put("数字", num);
map.put("字母", letter);
map.put("空格", space);
map.put("其他", other);
return map;
}
public static void main(String[] args) {
Client client = new Client();
//如果方法存在返回值,需要创建一个与返回值类型相同的变量来接收返回值
Map<String, Integer> map = client.getCharNumber("n wn =-0 qu wr s['");
System.out.println(map);
}
}
第二题
要求写一个秒表类(StopWatch),该秒表类该类在系统中只能有存在一个实例。并且存在star方法,可以用于开始计时,并且输出开始时间,同时存在stop方法用于停止计时,输出结束时间,要求秒表可以存储以毫秒为单位十个计时任务
/**
* 秒表类
* 只能存在一个实例-采用单例设计模式
* @author 一教室
*
*/
public class StopWatch {
/**
* 私有化构造器
*/
private StopWatch() {
}
/**
* 创建时间格式化对象作为属性,方便调用
*/
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
//实例化一个秒表对象,将该对象作为秒表类的属性
private static StopWatch stopWatch = new StopWatch();
/**
* 创建公共方法,对外提供创建出来的stopWatch对象
* @return
*/
public static StopWatch getInstance() {
return stopWatch;
}
/**
* 设置一个属性(开始时间记录器),用于存储秒表开始计时的时间
*/
private Date startTime;
/**
* 设置一个属性(计时任务存储器),用于保存十个计时任务
*/
private List<Long> record = new ArrayList<Long>();
/**
* 只能生成get方法,对外提供计时任务存储器数据,不能生成set方法,防止直接修改存储器数据
* @return
*/
public List<Long> getRecord() {
return record;
}
/**
* 开始计时方法
*/
public void start() {
Date date = new Date();
startTime = date;//将开始计时的时间存储到开始时间记录器中
System.out.println("开始时间:" + sdf.format(date));
}
/**
* 结束计时方法
*/
public void stop() {
if(startTime == null) {//说明没有调用开始计时方法
System.out.println("未曾开始计时");
} else {
Date date = new Date();
System.out.println("结束时间:" + sdf.format(date));
long time = date.getTime() - startTime.getTime();//结束时间-开始时间 = 计时任务要求毫秒数
if(record.size() >= 10) {
record.remove(0);//将最早的计时任务删除
record.add(time);
} else {
record.add(time);
}
}
}
}
public class Test {
public static void main(String[] args) throws InterruptedException {
StopWatch stw = StopWatch.getInstance();
//开始第一次计时
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(40);//让程序暂停40毫秒
stw.stop();
System.out.println(stw.getRecord());
//开始第二次计时
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
stw.start();
System.out.println(stw.getRecord());
//让程序休息方法
Thread.sleep(30);
stw.stop();
System.out.println(stw.getRecord());
}
}
来源:CSDN
作者:Clearlove3+4
链接:https://blog.csdn.net/weixin_45928192/article/details/103742722