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 ...
随机推荐
- HDU2111 Saving HDU 【贪心】
Saving HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- Ubuntu下访问SSH
ssh程序分为有客户端程序openssh-client和服务端程序openssh-server.如果需要ssh登陆到别的电脑,需要安装openssh-client,该程序ubuntu是默认安装的.而如 ...
- [AngularJS] Angular 1.5 multiple transclude
If you know ui-router, multi-transclude should be easy for you also. In previou Angular version < ...
- 操作系统下查看HBA卡信息wwn的方法
一.Windows 系统在Windows系统中,可以使用FC HBA卡厂家提供的管理软件查看光纤适配器的WWN号码,具体如下:Qlogic:SANsurferEmulex:HBAnyware http ...
- 开始学javascript基础
JavaScript非常值得我们学习. 1)所有主浏览器都支持JavaScript. 2) 目前,全世界大部分网页都使用JavaScript. 3) 它可以使网页呈现各种动态效果. 4)作为一个Web ...
- Csharp 高级编程 C7.1.2
第七章 代理(1) 一.代理要声明 二.代理使用步骤 声明代理 初始化代理(使用 实例的方法名 作为参数) 使用代理 代码示例: /*C7.1.2*/ using System; using Syst ...
- hdu Repositoryti
算法:字典树 题意:给你一些字符串,然后会有一些询问,输出询问在给定的字符串中出现了多少次(字串也是): 例如 add,子串有:a ,d,d,ad ,dd,add:你会发现子串d出现了两次,那么怎么办 ...
- JavaScript高级程序设计(学习笔记)
第13章 事件 一.事件 1.1事件冒泡:事件发生时从里面向外传播 如:div>body>html>document 1.2事件捕获:事件发生时从外层向里层传播 如 doc ...
- mongodb的连接问题,绑定IP惹的祸
刚刚安装好了 mongodb .对着 mongodb in action上的例子敲了下面的代码: public class TestDBConnect { @Test public void test ...
- 使用注解@Transient使表中没有此字段
注意,实体类中要使用org.springframework.data.annotation.Transient 在写实体类时发现有加@Transient注解的 加在属性声明上,但网上有加到get方法上 ...