Java小工具-帮助学委快速检查谁没交作业

大学期间,大家通过VX和QQ向学委发送作业,但是一个班有几十个人,学委要接收几十份文件,如果一个一个对名单,那效率太低。有了这个程序,学委就可以快速检测到没有交作业的同学,非常方便。并且,本程序对于一些奇怪的作业文件命名方式的文件也可以运行。

使用步骤:先把作业文件都放进一个文件里。

 File check = new File("C://rj2042") //输入作业文件夹的位置

然后输入班级人员姓名,一次输入长期使用。 

 String[] rj2042 = new String[]{"张三", "李四","赵六","王五"};//手动输入班上的人员姓名

接着就可以润了。

代码解析:

File check = new File("C://rj2042") //输入作业文件夹的位置

String[] strArray = check.list();//这里可以将文件夹里的文件名转成字符串存在数组中

 

  for(int i=0;i< rj2042.length;i++){
       for(int k=0;k< strArray.length;k++){
            for(int j=0;j<strArray[k].length()/*根据姓名大致位置确定位置*/;j++) {
                 if (rj2042[i].charAt(0) == strArray[k].charAt(j) && rj2042[i].charAt(1) == strArray[k].charAt(j+1)) {
                         hahahaha[i]=rj2042[i];
            }}}}
//这里嵌套了三层循环,时间复杂度有点大,但一个班几十个人,运算量不大,所以也是可以接受的。

//这里的算法有点像寻找两个数组中的公共子串的解题方法。再将相同的名字存入一个新的数组hahahaha
 for (String str:hahahaha){
            if(more.contains(str)){
                more.remove(str);
            }
        }
//这里通过调用more.contains和more.remove两种方法来去掉两个数组里不同的元素,保留的就是没交作业的同学了。

全部的代码(直接可以跑):

package collect_homework;

import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Collect_HomeWork {

    public static void main(String[]age) {

        File check = new File("C://rj2042") 
        {
        };
        String[] rj2042 = new String[]{"张三", "李四","赵六","王五"};名

        Set<String> more = new HashSet<String>(Arrays.asList(rj2042));

        System.out.println(check.isDirectory() + ":初始化完成");

        String[] strArray = check.list();

        String[] hahahaha = new String[60];

        for(int i=0;i< rj2042.length;i++){
            for(int k=0;k< strArray.length;k++){
                for(int j=0;j<strArray[k].length()/*根据姓名大致位置确定位置*/;j++) {
                    if (rj2042[i].charAt(0) == strArray[k].charAt(j) && rj2042[i].charAt(1) == strArray[k].charAt(j+1)) {
                         hahahaha[i]=rj2042[i];
            }}}}
        for (String str:hahahaha){
            if(more.contains(str)){
                more.remove(str);
            }
        }
        System.out.println(more+"没交");
    }

    }



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃巧乐兹的源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值