用java.util.Radom类中的方法.
创新互联是一家专业提供千山企业网站建设,专注与成都做网站、成都网站建设、H5高端网站建设、小程序制作等业务。10年已为千山众多企业、政府机构等服务。创新互联专业的建站公司优惠进行中。
Random rd=new Random();
int persion_id=rd.nextInt(10);//这样可以得到0-10之间的一个随机数(假如总共有十个学生.)
然后用,threeStudent.add(students[stu_id])实现.
有了这个以后,就好说了.循环取得三个学生.送到threeStudent中去.
public void chooseThree()
{
Random rd=new Random();
for(int i=0;i3;i++)
{
threeStudent.add(students[stu_id]);
}
}
祝你好运...
很多种方式可以实现,例如①给所有名字加上一个布尔类型的flag表示是否被抽过,每抽选一个名字将其对应的flag改为true,如果抽中flag为true的人则重抽;②将所有名字放在数组a中,设数组长度为n,第一次抽选从下标0~n-1中任选一个,将该下标位置的元素与a[0]交换;第二次抽选从下标1~n-1中任选一个,将该下标位置的元素与a[1]交换,以此类推。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
/**
* @author poet.x
* 2014/11/16
*/
public class FindName {
public static void main(String[] args) throws IOException {
if(args.length != 2 args[0] != null args[1] != null !args[0].isEmpty() !args[1].isEmpty() ){
throw new IllegalArgumentException("参数不对!");
}
String fileName = args[0]; // 文件名,带路径
String toFindStr = args[1]; // 需要查找的姓
File file = new File(fileName);
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String name = null;
// 用于存放结果
ListString results = new ArrayListString();
while((name = br.readLine()) != null ){
if( name == null || name.isEmpty() )
continue;
if(name.startsWith("王"))
results.add(name);
}
FileWriter fw = new FileWriter("王.txt");
for(String s : results){
fw.write(s);
fw.write("\r\n");
}
fw.flush();
fw.close();
}
}
编译时,使用 javac -encoding UTF-8 FindName.java ,这样可以防止编译时报GBK编码错误