java word 题目导入_java使用poi导入word题库

java使用poi导入word题库

包含单选,多选,填空,判断

//word图示

//具体代码,仅适合本人自己的格式

//代码一

InputStream inputStream = file.getInputStream();

FileTypeUtils flt = new FileTypeUtils();

String filetype = flt.getFileType(inputStream);//根据流获取文件的类型(解析文件头判断文件格式)

InputStream is = file.getInputStream();

//代码二

public static ListQuestions readWord2003(InputStream stream) throws IOException {

HWPFDocument doc = new HWPFDocument(stream);

Range r = doc.getRange();// 得到文档的读取范围

ListQuestions questions=new ArrayListQuestions();

for (int i = 0; i r.numParagraphs(); i++) {

Paragraph p = r.getParagraph(i);// 获取段落

//获取第一段

Paragraph p1=r.getParagraph(0);

String str=p.text();//获取段落内容

String nr=p1.text();

if(nr.contains("填空题")){//判断导入的为填空题

//String[] strings=str.split("\\d\\.");

String[] strings1=str.split("\u000B");

for(int k=0;kstrings1.length;k++){

String dluo=strings1[k];

if(dluo.length()6){

String[] sz=dluo.split("\\d\\.");

String tm="";

try {

tm=sz[1];

}catch (Exception e){

System.out.println(sz);

}

String tmw=tm.replaceAll("\\(.*\\)|\\{.*}|\\[.*]|(.*)", "_");

//获取答案内容

ListString answer= extractMessageByRegular(tm);

String Sda= Joiner.on("|").join(answer);

Questions questionsOne=new Questions();

questionsOne.setQtType("2");

questionsOne.setQtAnsw(Sda);

questionsOne.setQtContent(tmw);

questions.add(questionsOne);

}

}

}

if(nr.contains("判断题")){

String[] strings1=str.split("\u000B");

for(int k=0;kstrings1.length;k++){

String dluo=strings1[k];

if(dluo.length()6){

String qtm=strings1[k];

ListString gh= extractMessageByRegular(qtm);

Questions questionsOne=new Questions();

questionsOne.setQtType("1");

if("√".equals(gh.get(0))){

questionsOne.setQtAnsw(String.valueOf(1));

}else {

questionsOne.setQtAnsw(String.valueOf(2));

}

questionsOne.setQtOp1("正确");

questionsOne.setQtOp2("错误");

String[] sz=qtm.split("\\d\\.");

String tm="";

try {

tm=sz[1];

}catch (Exception e){

System.out.println(sz);

}

questionsOne.setQtContent(tm);

questions.add(questionsOne);

}

}

}

if(nr.contains("选择题")){

if(str.length()6){

String[] strings1=str.split("\\d\\.");

for(int k=0;kstrings1.length;k++){

String dluo=strings1[k];

if(dluo.length()6){

String[] sz=dluo.split("\u000B");

//获取题干

String tmw=sz[0].replaceAll("\\(.*\\)|\\{.*}|\\[.*]|(.*)", "()");

//选项内容

ListString options=new ArrayListString();

//获取答案

ListString qz= extractMessageByRegular(sz[0]);

String ans=qz.get(0).trim();

if(ans.equals("A")){

ans=String.valueOf(1);

}

if(ans.equals("B")){

ans=String.valueOf(2);

}

if(ans.equals("C")){

ans=String.valueOf(3);

}

if(ans.equals("D")){

ans=String.valueOf(4);

}

for(int h=1;h sz.length;h++){

//获取选项

String[] xuanX=sz[h].split("\\D\\.");

for(int f=1;fxuanX.length;f++){

options.add(xuanX[f]);

}

}

Questions questionsOne=new Questions();

questionsOne.setQtType(String.valueOf(1));

questionsOne.setQtContent(tmw);

questionsOne.setQtOp1(options.get(0));

questionsOne.setQtOp2(options.get(1));

questionsOne.setQtOp3(options.get(2));

questionsOne.setQtOp4(options.get(3));

questionsOne.setQtAnsw(ans);

questions.add(questionsOne);

}

}

}

}

if(nr.contains("多选题")){

if(str.length()8){

String[] strings1=str.split("\\d\\.");

for(int k=0;kstrings1.length;k++){

String dluo=strings1[k];

if(dluo.length()6){

String[] sz=dluo.split("\u000B");

//获取题干

String tmw=sz[0].replaceAll("\\(.*\\)|\\{.*}|\\[.*]|(.*)", "()");

//选项内容

ListString options=new ArrayListString();

//获取答案

ListString qz= extractMessageByRegular(sz[0]);

String solution= qz.get(0).trim();

ListString list = new ArrayListString(); //定义对象依次存放每一个字符

for(int n = 0; n solution.length() ; n++){

String ss = solution.substring(n,n+1);

if(ss.equals("A")){

ss="1";

}

if(ss.equals("B")){

ss="2";

}

if(ss.equals("C")){

ss="3";

}

if(ss.equals("D")){

ss="4";

}

list.add(ss);

}

String key= Joiner.on("|").join(list);

for(int h=1;hsz.length;h++){

//获取选项

String[] xuanX=sz[h].split("\\D\\.");

for(int f=1;fxuanX.length;f++){

options.add(xuanX[f]);

}

}

Questions questionsOne=new Questions();

questionsOne.setQtType(String.valueOf(1));

questionsOne.setQtContent(tmw);

try {

questionsOne.setQtOp1(options.get(0));

questionsOne.setQtOp2(options.get(1));

questionsOne.setQtOp3(options.get(2));

questionsOne.setQtOp4(options.get(3));

}catch (Exception e){

System.out.println(options);

}

questionsOne.setQtAnsw(key);

questions.add(questionsOne);

}

}

}

}

}

return questions;

}

java使用poi导入word题库 相关文章

EXC_BREAKPOINT (SIGTRAP)

The breakpoint exception type indicates a trace trap interrupted the process. A trace trap gives an attached debugger the chance to interrupt the process at a specific point in its execution. On ARM processors, this appears as EXC_BREAKPOI

Java反射

反射 反射概述: ?Java中的反射( Reflection )机制就是指在运行过程中,对于任意一个类,都能够知道这个类的属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法,这种动态获取信息和动态调用方法的功能被称之为Java语言的反射机制。 反射的使

linux查看当前运行的进程

可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。 ps命令能提供一份当前进程的快照。如果想状态可以自动刷新,可以使用top命令。 ps命令 输入下面的ps命令,显示所有运行中的进

go

现在可以使用 -linkshared 标志 您需要做的是首先运行以下命令: go install -buildmode=shared -linkshared std (以上代码使所有通用软件包都可共享!)然后 go install -buildmode=shared -linkshared userownpackage 最后,在编译代码时,您需要运行: g

opencv函数学习:cvtColor()的使用

cvtColor() 官方使用说明 void cv::cvtColor(InputArraysrc,OutputArraydst,intcode,intdstCn= 0) #include opencv2/imgproc.hpp Converts an image from one color space to another. The function converts an input image from one color space to anothe

关于Java的小工具(计算当前日期所在周的区间)

1.2.计算指定格式日期的当前周和前后周的起止时间 入参:date类型,或者当前系统时间 返回:当前时间的所在周的起止日期,和前后一周的起止日期 /** * 此方法为:根据当前日期获得所在周的日期区间(周一和周日日期) * 入参: 时间类型Date date * 返回: 字符串

Win10 下安装使用easyocr图片识别工具

[前言] 最近在做图像识别相关的工作,找到了一个名为EasyOCR的pythoh 库。 使用过程中出现了一些问题,现做简单记录。 [正文] 1. 安装EasyOCR 我用了最简单的方法:pip3 install easyocr 2.测试: 1 import easyocr2 3 # 创建reader对象4 reader = easyocr.R

在JavaScript 中竟然还不知道这些技巧

不少人有五年的 JavaScript 经验,但实际上可能只是一年的经验重复用了五次而已。完成同样的逻辑和功能,有人可以写出意大利面条一样的代码,也有人两三行简洁清晰的代码就搞定了。简洁的代码不但方便阅读,还能减少复杂逻辑和出错的可能性。本文就介绍一些

FlinkSQL内置了这么多函数你都使用过吗

前言 Flink Table 和 SQL 内置了很多 SQL 中支持的函数;如果有无法满足的需要,则可以实现用户自定义的函数( UDF )来解决。 一、系统内置函数 Flink Table API 和 SQL 为用户提供了一组用于数据转换的内置函数。SQL 中支持的很多函数,Table API 和 SQL

一篇文章带你了解JavaScript函数

一个JavaScript函数是一个为执行特定任务而设计的代码块,JavaScript函数当调用时被执行。 一、函数语法 一个JavaScript函数使用function关键字定义,后面跟一个函数名称,后面跟一对括号()。 函数名可以包含字母、数字、下划线和美元符号(与变量相同的规则

你可能感兴趣的:(java,word,题目导入)