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关键字定义,后面跟一个函数名称,后面跟一对括号()。 函数名可以包含字母、数字、下划线和美元符号(与变量相同的规则