代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
自动分析题目
作者:
罪恶的花生
/ 发布于
2012/10/8
/
523
自动分析题目
import java.util.ArrayList; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern;</div> import org.apache.commons.lang.StringUtils;</div> <div>public class QuestionObj { private String title; private List<String> Xx; private String ckda; private String dajx; private String stdp; public QuestionObj(String str){ Xx = new ArrayList<String>(); int i=0; //查找选项 Pattern pattern = Pattern.compile("^([a-zA-Z]+.)",Pattern.MULTILINE); Matcher matcher = pattern.matcher(str); if(matcher.find()){ this.title = trimstr(str.substring(0,matcher.start())); i=matcher.end(); } while(matcher.find()){ Xx.add(trimstr(str.substring(i, matcher.start()))); i=matcher.end(); } //查找参考答案 Pattern pattern2 = Pattern.compile("^([参考答案]+:)",Pattern.MULTILINE); Matcher matcher2 = pattern2.matcher(str); if(matcher2.find()){ if(i==0){ this.title = trimstr(str.substring(0,matcher2.start())); i=matcher2.end(); }else{ Xx.add(trimstr(str.substring(i, matcher2.start()))); i=matcher2.end(); } } //查找答案解析 Pattern pattern3 = Pattern.compile("^([题目类型]+:)",Pattern.MULTILINE); Matcher matcher3 = pattern3.matcher(str); if(matcher3.find()){ if(i==0){ this.title = trimstr(str.substring(0,matcher3.start())); i=matcher3.end(); }else{ ckda = trimstr(str.substring(i, matcher3.start())); i=matcher3.end(); } } //查找试题点评 Pattern pattern4 = Pattern.compile("^([针对课程]+:)",Pattern.MULTILINE); Matcher matcher4 = pattern4.matcher(str); if(matcher4.find()){ System.out.println(i+"|"+matcher4.start()); if(i==0){ this.title = trimstr(str.substring(0,matcher4.start())); i=matcher4.end(); }else{ dajx = trimstr(str.substring(i, matcher4.start())); i=matcher4.end(); } } if(i<str.length()){ stdp = trimstr(str.substring(i)); } } public String trimstr(String str){ if(StringUtils.isEmpty(str)) return str; str = str.replaceAll("\n", ""); str = StringUtils.trimToEmpty(str); str = str.trim(); return str; } public String getTitle() { return title; } <div>public void setTitle(String title) { this.title = title; } <div>public List<String> getXx() { return Xx; } <div>public void setXx(List<String> xx) { Xx = xx; } <div>public String getCkda() { return ckda; } <div>public void setCkda(String ckda) { this.ckda = ckda; } <div>public String getDajx() { return dajx; } <div>public void setDajx(String dajx) { this.dajx = dajx; } <div>public String getStdp() { return stdp; } <div>public void setStdp(String stdp) { this.stdp = stdp; } <div>public String toString() { StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("{\n"); stringBuffer.append("\ttitle:\""+title+"\",\n"); stringBuffer.append("\tXx:{\n"); for (String x1 : Xx) { stringBuffer.append("\t\t\""+x1+"\",\n"); } stringBuffer.append("\t}\n"); stringBuffer.append("\tckda:\""+ckda+"\",\n"); stringBuffer.append("\tdajx:\""+dajx+"\",\n"); stringBuffer.append("\tstdp:\""+stdp+"\",\n"); stringBuffer.append("}\n"); return stringBuffer.toString(); } public QuestionObj() { } /** * @param args */ public static void main(String[] args) { StringBuffer str = new StringBuffer(); for (int i = 1; i <=10; i++) { str.append(i+"、所谓信息系统集成是指( )"); str.append("\n"); str.append("A. 计算机网络系统的安装调试"); str.append("\n"); str.append("B. 计算机应用系统的部署和实施"); str.append("\n"); str.append("C. 计算机信息系统的设计、研发、 实施和服务"); str.append("\n"); str.append("D. 计算机应用系统工程和网络系统工程的总体策划、设计、开发、实施、服务及保障"); str.append("\n"); str.append("参考答案:D"); str.append("\n"); str.append("题目类型:单项选择题"); str.append("\n"); str.append("针对课程:项目经理考试"); str.append("\n\n\n"); } //System.out.println(str); Pattern pattern = Pattern.compile("^([\\d]+、)",Pattern.MULTILINE); Matcher matcher = pattern.matcher(str); System.out.println(matcher.toMatchResult()); int s = 2; while(matcher.find()){ String datas = matcher.group(1); if(matcher.start()>2){ System.out.println(new QuestionObj(str.substring(s, matcher.start()))); s=matcher.end(); } System.out.println(datas+"|"+matcher.start()); } if(s<str.length()){ System.out.println(new QuestionObj(str.substring(s))); } //System.out.println(str); //String str1 = str.toString(); //for (int i = 0; i <100; i++) { //int ei = str1.indexOf((i+1)+"、"); //if(ei>0){ //System.out.println(str1.substring(0,ei)); //str1 = str.substring(ei); //} //} } <div>} </div>
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
罪恶的花生
贡献的其它代码
(
13
)
.
清除系统垃圾文件
.
poi完美word转html(表格、图片、样式)
.
读入文件并逐行处理
.
补0
.
生成excel 列序号
.
获取可以用GBK编码的汉字拼音首字母
.
将文件变成字符串,再还原成文件
.
一句话替换文本中的回车空格tab符号
.
中国行政区编码_邮政编码_区号编码
.
获取Webbrowser中的图片
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3