java实现点名,并记录被点次数
java实现点名,并记录被点次数
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Scanner; public class Demoe1 {
public static void main(String[] args)throws Exception {
File f=new File("src/t7/names.txt");
//用于存放读取进来的学生姓名
ArrayList<String> nameList=new
ArrayList<String>();
//定义用于读取文件的输入流
Scanner cin=new Scanner(new
FileInputStream(f));
cin.useDelimiter("\n");
//读取学生姓名到集合中
while(cin.hasNext()){
nameList.add(cin.next());
}
cin.close();//关闭输入流
f.delete();//删除原有的文本文件
//用于存储处理后的学生姓名
ArrayList<String> resultList=new
ArrayList<String>();
for(String s:nameList){
//用于去掉回车换行
s=s.substring(0,s.length()-1);
//把处理后的学生姓名加来新的容器中
resultList.add(s+"\t"+0);
}
//定义文件输出流
PrintStream ps=new
PrintStream(new
FileOutputStream(f));
//把处理之后的学生姓名写到文本文件中
for(String s:resultList)
ps.println(s);
ps.close();//关闭输出流
}
}
学生姓名和时间
public class Student {
private String name;
private int time;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getTime() {
return time;
}
public void setTime(int time) {
this.time = time;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner; public class RollCall {
public static void main(String[] args) throws Exception {
File f = new File("src/t8/names.txt");
Scanner cin = new Scanner(new FileInputStream(f));
cin.useDelimiter("\n");
// 用于存储学生姓名和被点次数
ArrayList<Student> sList = new ArrayList<Student>();
while (cin.hasNext()) {
String s = cin.next();
// 用空格把学生姓名和次数他隔开
String[] ss = s.split("\\s+");// 正则
Student stu = new Student();
stu.setName(ss[0]);
// 把字符串类型的次数转换成int类型的次数
// 并存入Student类的对象中
stu.setTime(Integer.parseInt(ss[1]));
sList.add(stu);
}
cin.close();
f.delete();
// 产生随机下标
Random r = new Random();
// 下标的上界为数组的长度
int i = r.nextInt(sList.size());
Student student = sList.get(i);
System.out.println(student.getName());
// 被点过名的学生,点名次数加1
sList.get(i).setTime(student.getTime() + 1);
writeStudent(f,sList);
} public static void writeStudent(File f, ArrayList<Student> sList)throws Exception {
// 建立文件输出流
PrintStream ps = new PrintStream(new FileOutputStream(f));
for (Student s : sList) {
// 把学生姓名和被点次数拼成字符串
String st = s.getName() + "\t" + s.getTime();
// 把学生信息输出到文本文件中
ps.println(st);
}
ps.close();
}
}
java实现点名,并记录被点次数的更多相关文章
- Java学习-007-Log4J 日志记录配置文件详解及实例源代码
此文主要讲述在初学 Java 时,常用的 Log4J 日志记录配置文件详解及实例源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:20 ...
- JAVA 中LinkedHashMap要点记录
JAVA 中LinkedHashMap要点记录 构造函数中可能出现的几个参数说明如下: 1.initialCapacity 初始容量大小,使用无参构造方法时,此值默认是16 2.loadFactor ...
- Java NIO学习与记录(八): Reactor两种多线程模型的实现
Reactor两种多线程模型的实现 注:本篇文章例子基于上一篇进行:Java NIO学习与记录(七): Reactor单线程模型的实现 紧接着上篇Reactor单线程模型的例子来,假设Handler的 ...
- Java给各个方法记录执行时间
Java给各个方法记录执行时间 long startTime = System.currentTimeMillis();...//要测试时间的方法LoggerFactory.getLogger(Bas ...
- 使用window.localStorage,window.localStorage记录点击次数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Java web--Filter过滤器分IP统计访问次数
分IP统计访问次数即网站统计每个IP地址访问本网站的次数. 分析 因为一个网站可能有多个页面,无论哪个页面被访问,都要统计访问次数,所以使用过滤器最为方便. 因为需要分IP统计,所以可以在过滤器中创建 ...
- 关于Java Microbenchmark的一点记录
大家知道单元测试对代码质量的保障作用已经没什么可说的了.Microbenchmark(微基准测试)也是保证代码质量的重要手段,也是容易忽略的,它用来衡量一些小的代码片段的性能指标,完善的Microbe ...
- 利用jdk中工具完成Java程序监控方法记录
转载加自己整理的部分内容,转载自:http://jiajun.iteye.com/blog/810150 记录下JConsole使用方法 一.JConsole是什么 从Java 5开始 引入了 ...
- java中的List记录是否完全匹配方法
今天要说的是给List分组,然后用Map来封装,可能你看了以后还是有一些模糊. 先看一下项目结构图: User类是一个VO类,主要逻辑还是在MapTestBak上面. 运行效果: 原理图: 1.在st ...
随机推荐
- 使用C++11实现无锁stack(lock-free stack)
前几篇文章,我们讨论了如何使用mutex保护数据及使用使用condition variable在多线程中进行同步.然而,使用mutex将会导致一下问题: 等待互斥锁会消耗宝贵的时间 — 有时候是很多时 ...
- js过滤
datagrid: loadFilter: function (data) { return loadFilter(data); ...
- MySQL 数据库入门操作
启动mysqld:在命令行启动mysql时,如不加"--console",启动.关闭信息不在界面中显示,而是记录在安装目录下的data目录里,文件名一般是hostname.err, ...
- 数据库分库分表(sharding)系列(三) 关于使用框架还是自主开发以及sharding实现层面的考量
当团队对系统业务和数据库进行了细致的梳理,确定了切分方案后,接下来的问题就是如何去实现切分方案了,目前在sharding方面有不少的开源框架和产品可供参考,同时很多团队也会选择自主开发实现,而不管是选 ...
- mvc actionresult 判断是否回发?
if(Request.HttpMethod.Equals("POST", StringComparison.OrdinalIgnoreCase)){POST回发的代码}
- Light oj 1030 二分查找
1088 - Points in Segments PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 ...
- sql 用openxml 将xml转换为数据表Table
CREATE PROCEDURE up_OpenXml ( @xml XML ) AS BEGIN DECLARE @Pointer INT EXECUTE sp_xml_preparedocumen ...
- Oracle11g R2学习系列 之十 解决EM不能用
不知道是什么原因https://localhost:1158/em,今天突然就不能用了.做了好多搜索也没有解决.现象是在services.msc中,不能重启OracleDBConsole服务,提示: ...
- C# winform 窗体弹出选择目录或文件 的对话框
//弹出一个选择目录的对话框 privatevoid btnSelectPath_Click(object sender, EventArgs e) //弹出一个选择目录的对话框 { FolderBr ...
- NAS4Free 安装配置(二)系统安装
NAS4Free系统安装 看一看BIOS设置 开机按DEL进BIOS 改日期时间 这里可以设置RAID,因为ZFS的RAID功能更好,所以我们在这里不配置RAID 制作LiveUSB 用软件(USB ...